]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/messages/MTimeCheck.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / messages / MTimeCheck.h
index 8994e9646646099b80b1c14131c1edc9f524878c..994c6dd8bb57d4e6c7b13817186ce0ed6e205d7b 100644 (file)
 #ifndef CEPH_MTIMECHECK_H
 #define CEPH_MTIMECHECK_H
 
-struct MTimeCheck : public Message
-{
-  static const int HEAD_VERSION = 1;
+class MTimeCheck : public MessageInstance<MTimeCheck> {
+public:
+  friend factory;
+
+  static constexpr int HEAD_VERSION = 1;
 
   enum {
     OP_PING = 1,
@@ -33,9 +35,9 @@ struct MTimeCheck : public Message
   map<entity_inst_t, double> skews;
   map<entity_inst_t, double> latencies;
 
-  MTimeCheck() : Message(MSG_TIMECHECK, HEAD_VERSION) { }
+  MTimeCheck() : MessageInstance(MSG_TIMECHECK, HEAD_VERSION) { }
   MTimeCheck(int op) :
-    Message(MSG_TIMECHECK, HEAD_VERSION),
+    MessageInstance(MSG_TIMECHECK, HEAD_VERSION),
     op(op)
   { }
 
@@ -43,7 +45,7 @@ private:
   ~MTimeCheck() override { }
 
 public:
-  const char *get_type_name() const override { return "time_check"; }
+  std::string_view get_type_name() const override { return "time_check"; }
   const char *get_op_name() const {
     switch (op) {
     case OP_PING: return "ping";
@@ -65,22 +67,23 @@ public:
   }
 
   void decode_payload() override {
-    bufferlist::iterator p = payload.begin();
-    ::decode(op, p);
-    ::decode(epoch, p);
-    ::decode(round, p);
-    ::decode(timestamp, p);
-    ::decode(skews, p);
-    ::decode(latencies, p);
+    auto p = payload.cbegin();
+    decode(op, p);
+    decode(epoch, p);
+    decode(round, p);
+    decode(timestamp, p);
+    decode(skews, p);
+    decode(latencies, p);
   }
 
   void encode_payload(uint64_t features) override {
-    ::encode(op, payload);
-    ::encode(epoch, payload);
-    ::encode(round, payload);
-    ::encode(timestamp, payload);
-    ::encode(skews, payload, features);
-    ::encode(latencies, payload, features);
+    using ceph::encode;
+    encode(op, payload);
+    encode(epoch, payload);
+    encode(round, payload);
+    encode(timestamp, payload);
+    encode(skews, payload, features);
+    encode(latencies, payload, features);
   }
 };