]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/messages/MOSDPGPushReply.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / messages / MOSDPGPushReply.h
index c60007c818721e533a78825f0793ae9973e68438..b9b7687e8eb20df9658927fda54751b2249e2c20 100644 (file)
 
 #include "MOSDFastDispatchOp.h"
 
-class MOSDPGPushReply : public MOSDFastDispatchOp {
-  static const int HEAD_VERSION = 3;
-  static const int COMPAT_VERSION = 2;
+class MOSDPGPushReply : public MessageInstance<MOSDPGPushReply, MOSDFastDispatchOp> {
+public:
+  friend factory;
+private:
+  static constexpr int HEAD_VERSION = 3;
+  static constexpr int COMPAT_VERSION = 2;
 
 public:
   pg_shard_t from;
   spg_t pgid;
-  epoch_t map_epoch, min_epoch;
+  epoch_t map_epoch = 0, min_epoch = 0;
   vector<PushReplyOp> replies;
   uint64_t cost;
 
@@ -39,7 +42,7 @@ public:
   }
 
   MOSDPGPushReply()
-    : MOSDFastDispatchOp(MSG_OSD_PG_PUSH_REPLY, HEAD_VERSION, COMPAT_VERSION),
+    : MessageInstance(MSG_OSD_PG_PUSH_REPLY, HEAD_VERSION, COMPAT_VERSION),
       cost(0)
     {}
 
@@ -57,28 +60,29 @@ public:
   }
 
   void decode_payload() override {
-    bufferlist::iterator p = payload.begin();
-    ::decode(pgid.pgid, p);
-    ::decode(map_epoch, p);
-    ::decode(replies, p);
-    ::decode(cost, p);
-    ::decode(pgid.shard, p);
-    ::decode(from, p);
+    auto p = payload.cbegin();
+    decode(pgid.pgid, p);
+    decode(map_epoch, p);
+    decode(replies, p);
+    decode(cost, p);
+    decode(pgid.shard, p);
+    decode(from, p);
     if (header.version >= 3) {
-      ::decode(min_epoch, p);
+      decode(min_epoch, p);
     } else {
       min_epoch = map_epoch;
     }
   }
 
   void encode_payload(uint64_t features) override {
-    ::encode(pgid.pgid, payload);
-    ::encode(map_epoch, payload);
-    ::encode(replies, payload);
-    ::encode(cost, payload);
-    ::encode(pgid.shard, payload);
-    ::encode(from, payload);
-    ::encode(min_epoch, payload);
+    using ceph::encode;
+    encode(pgid.pgid, payload);
+    encode(map_epoch, payload);
+    encode(replies, payload);
+    encode(cost, payload);
+    encode(pgid.shard, payload);
+    encode(from, payload);
+    encode(min_epoch, payload);
   }
 
   void print(ostream& out) const override {
@@ -88,7 +92,7 @@ public:
     out << ")";
   }
 
-  const char *get_type_name() const override { return "MOSDPGPushReply"; }
+  std::string_view get_type_name() const override { return "MOSDPGPushReply"; }
 };
 
 #endif