]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/messages/MMonProbe.h
import 15.2.0 Octopus source
[ceph.git] / ceph / src / messages / MMonProbe.h
index 8b878dfda043d440bfcb06924011a17d8f2e4a6f..8cd8a506a77cb88bfd2513819fc9fbaea1c7134d 100644 (file)
 #define CEPH_MMONPROBE_H
 
 #include "include/ceph_features.h"
+#include "common/ceph_releases.h"
 #include "msg/Message.h"
 #include "mon/MonMap.h"
 
-class MMonProbe : public MessageInstance<MMonProbe> {
+class MMonProbe : public Message {
 public:
-  friend factory;
-
   static constexpr int HEAD_VERSION = 7;
   static constexpr int COMPAT_VERSION = 5;
 
@@ -57,12 +56,12 @@ public:
   version_t paxos_last_version = 0;
   bool has_ever_joined = 0;
   uint64_t required_features = 0;
-  uint8_t mon_release = 0;
+  ceph_release_t mon_release{ceph_release_t::unknown};
 
   MMonProbe()
-    : MessageInstance(MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION) {}
-  MMonProbe(const uuid_d& f, int o, const string& n, bool hej, uint8_t mr)
-    : MessageInstance(MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION),
+    : Message{MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION} {}
+  MMonProbe(const uuid_d& f, int o, const string& n, bool hej, ceph_release_t mr)
+    : Message{MSG_MON_PROBE, HEAD_VERSION, COMPAT_VERSION},
       fsid(f),
       op(o),
       name(n),
@@ -70,7 +69,7 @@ public:
       paxos_last_version(0),
       has_ever_joined(hej),
       required_features(0),
-      mon_release(mr) {}
+      mon_release{mr} {}
 private:
   ~MMonProbe() override {}
 
@@ -90,8 +89,8 @@ public:
       out << " new";
     if (required_features)
       out << " required_features " << required_features;
-    if (mon_release)
-      out << " mon_release " << (int)mon_release;
+    if (mon_release != ceph_release_t::unknown)
+      out << " mon_release " << mon_release;
     out << ")";
   }
   
@@ -135,8 +134,11 @@ public:
     if (header.version >= 7)
       decode(mon_release, p);
     else
-      mon_release = 0;
+      mon_release = ceph_release_t::unknown;
   }
+private:
+  template<class T, typename... Args>
+  friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args);
 };
 
 #endif