]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/WatchNotifyTypes.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / librbd / WatchNotifyTypes.h
index 74cf9799e8f5ed6441521e56936b8acd38b1db85..02d2b60bd0088cff936ec756b27c0b7bea00b9e4 100644 (file)
@@ -33,7 +33,7 @@ struct AsyncRequestId {
     : client_id(client_id_), request_id(request_id_) {}
 
   void encode(bufferlist& bl) const;
-  void decode(bufferlist::iterator& it);
+  void decode(bufferlist::const_iterator& it);
   void dump(Formatter *f) const;
 
   inline bool operator<(const AsyncRequestId &rhs) const {
@@ -65,6 +65,8 @@ enum NotifyOp {
   NOTIFY_OP_SNAP_UNPROTECT     = 13,
   NOTIFY_OP_RENAME             = 14,
   NOTIFY_OP_UPDATE_FEATURES    = 15,
+  NOTIFY_OP_MIGRATE            = 16,
+  NOTIFY_OP_SPARSIFY           = 17,
 };
 
 struct AcquiredLockPayload {
@@ -77,7 +79,7 @@ struct AcquiredLockPayload {
   AcquiredLockPayload(const ClientId &client_id_) : client_id(client_id_) {}
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -91,7 +93,7 @@ struct ReleasedLockPayload {
   ReleasedLockPayload(const ClientId &client_id_) : client_id(client_id_) {}
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -108,7 +110,7 @@ struct RequestLockPayload {
   }
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -117,7 +119,7 @@ struct HeaderUpdatePayload {
   static const bool CHECK_FOR_REFRESH = false;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -126,7 +128,7 @@ public:
   AsyncRequestId async_request_id;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 
 protected:
@@ -146,7 +148,7 @@ struct AsyncProgressPayload : public AsyncRequestPayloadBase {
   uint64_t total;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -161,7 +163,7 @@ struct AsyncCompletePayload : public AsyncRequestPayloadBase {
   int result;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -185,7 +187,7 @@ struct ResizePayload : public AsyncRequestPayloadBase {
   bool allow_shrink;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -197,7 +199,7 @@ public:
   std::string snap_name;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 
 protected:
@@ -216,7 +218,7 @@ struct SnapCreatePayload : public SnapPayloadBase {
     : SnapPayloadBase(_snap_namespace, name) {}
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -228,10 +230,10 @@ struct SnapRenamePayload : public SnapPayloadBase {
                    const std::string &dst_name)
     : SnapPayloadBase(cls::rbd::UserSnapshotNamespace(), dst_name), snap_id(src_snap_id) {}
 
-  uint64_t snap_id;
+  uint64_t snap_id = 0;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -281,7 +283,7 @@ struct RenamePayload {
   std::string image_name;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -297,7 +299,30 @@ struct UpdateFeaturesPayload {
   bool enabled;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
+  void dump(Formatter *f) const;
+};
+
+struct MigratePayload : public AsyncRequestPayloadBase {
+  static const NotifyOp NOTIFY_OP = NOTIFY_OP_MIGRATE;
+  static const bool CHECK_FOR_REFRESH = true;
+
+  MigratePayload() {}
+  MigratePayload(const AsyncRequestId &id) : AsyncRequestPayloadBase(id) {}
+};
+
+struct SparsifyPayload : public AsyncRequestPayloadBase {
+  static const NotifyOp NOTIFY_OP = NOTIFY_OP_SPARSIFY;
+  static const bool CHECK_FOR_REFRESH = true;
+
+  SparsifyPayload() {}
+  SparsifyPayload(const AsyncRequestId &id, size_t sparse_size)
+    : AsyncRequestPayloadBase(id), sparse_size(sparse_size) {}
+
+  size_t sparse_size = 0;
+
+  void encode(bufferlist &bl) const;
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -306,7 +331,7 @@ struct UnknownPayload {
   static const bool CHECK_FOR_REFRESH = false;
 
   void encode(bufferlist &bl) const;
-  void decode(__u8 version, bufferlist::iterator &iter);
+  void decode(__u8 version, bufferlist::const_iterator &iter);
   void dump(Formatter *f) const;
 };
 
@@ -326,6 +351,8 @@ typedef boost::variant<AcquiredLockPayload,
                        RebuildObjectMapPayload,
                        RenamePayload,
                        UpdateFeaturesPayload,
+                       MigratePayload,
+                       SparsifyPayload,
                        UnknownPayload> Payload;
 
 struct NotifyMessage {
@@ -337,8 +364,9 @@ struct NotifyMessage {
   bool check_for_refresh() const;
 
   void encode(bufferlist& bl) const;
-  void decode(bufferlist::iterator& it);
+  void decode(bufferlist::const_iterator& it);
   void dump(Formatter *f) const;
+  NotifyOp get_notify_op() const;
 
   static void generate_test_instances(std::list<NotifyMessage *> &o);
 };
@@ -350,22 +378,23 @@ struct ResponseMessage {
   int result;
 
   void encode(bufferlist& bl) const;
-  void decode(bufferlist::iterator& it);
+  void decode(bufferlist::const_iterator& it);
   void dump(Formatter *f) const;
 
   static void generate_test_instances(std::list<ResponseMessage *> &o);
 };
 
-} // namespace watch_notify
-} // namespace librbd
-
 std::ostream &operator<<(std::ostream &out,
-                         const librbd::watch_notify::NotifyOp &op);
+                         const NotifyOp &op);
 std::ostream &operator<<(std::ostream &out,
-                         const librbd::watch_notify::AsyncRequestId &request);
+                         const AsyncRequestId &request);
+
+WRITE_CLASS_ENCODER(AsyncRequestId);
+WRITE_CLASS_ENCODER(NotifyMessage);
+WRITE_CLASS_ENCODER(ResponseMessage);
+
+} // namespace watch_notify
+} // namespace librbd
 
-WRITE_CLASS_ENCODER(librbd::watch_notify::AsyncRequestId);
-WRITE_CLASS_ENCODER(librbd::watch_notify::NotifyMessage);
-WRITE_CLASS_ENCODER(librbd::watch_notify::ResponseMessage);
 
 #endif // LIBRBD_WATCH_NOTIFY_TYPES_H