]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/messages/MMonScrub.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / messages / MMonScrub.h
index b66a34d7e1d55048918f94f2c8999825dec3d2a1..8924bad9ff7fbf6c42b6eac581974b44746cfde4 100644 (file)
 #include "msg/Message.h"
 #include "mon/mon_types.h"
 
-class MMonScrub : public Message
-{
-  static const int HEAD_VERSION = 2;
-  static const int COMPAT_VERSION = 2;
+class MMonScrub : public MessageInstance<MMonScrub> {
+public:
+  friend factory;
+private:
+  static constexpr int HEAD_VERSION = 2;
+  static constexpr int COMPAT_VERSION = 2;
 
 public:
   typedef enum {
@@ -31,27 +33,27 @@ public:
     switch (op) {
     case OP_SCRUB: return "scrub";
     case OP_RESULT: return "result";
-    default: assert(0 == "unknown op type"); return NULL;
+    default: ceph_abort_msg("unknown op type"); return NULL;
     }
   }
 
-  op_type_t op;
-  version_t version;
+  op_type_t op = OP_SCRUB;
+  version_t version = 0;
   ScrubResult result;
   int32_t num_keys;
   pair<string,string> key;
 
   MMonScrub()
-    : Message(MSG_MON_SCRUB, HEAD_VERSION, COMPAT_VERSION),
+    : MessageInstance(MSG_MON_SCRUB, HEAD_VERSION, COMPAT_VERSION),
       num_keys(-1)
   { }
 
   MMonScrub(op_type_t op, version_t v, int32_t num_keys)
-    : Message(MSG_MON_SCRUB, HEAD_VERSION, COMPAT_VERSION),
+    : MessageInstance(MSG_MON_SCRUB, HEAD_VERSION, COMPAT_VERSION),
       op(op), version(v), num_keys(num_keys)
   { }
 
-  const char *get_type_name() const override { return "mon_scrub"; }
+  std::string_view get_type_name() const override { return "mon_scrub"; }
 
   void print(ostream& out) const override {
     out << "mon_scrub(" << get_opname((op_type_t)op);
@@ -64,23 +66,24 @@ public:
   }
 
   void encode_payload(uint64_t features) override {
+    using ceph::encode;
     uint8_t o = op;
-    ::encode(o, payload);
-    ::encode(version, payload);
-    ::encode(result, payload);
-    ::encode(num_keys, payload);
-    ::encode(key, payload);
+    encode(o, payload);
+    encode(version, payload);
+    encode(result, payload);
+    encode(num_keys, payload);
+    encode(key, payload);
   }
 
   void decode_payload() override {
-    bufferlist::iterator p = payload.begin();
+    auto p = payload.cbegin();
     uint8_t o;
-    ::decode(o, p);
+    decode(o, p);
     op = (op_type_t)o;
-    ::decode(version, p);
-    ::decode(result, p);
-    ::decode(num_keys, p);
-    ::decode(key, p);
+    decode(version, p);
+    decode(result, p);
+    decode(num_keys, p);
+    decode(key, p);
   }
 };