: 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 {
NOTIFY_OP_SNAP_UNPROTECT = 13,
NOTIFY_OP_RENAME = 14,
NOTIFY_OP_UPDATE_FEATURES = 15,
+ NOTIFY_OP_MIGRATE = 16,
+ NOTIFY_OP_SPARSIFY = 17,
};
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;
};
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;
};
}
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;
};
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;
};
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:
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;
};
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;
};
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;
};
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:
: 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;
};
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;
};
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;
};
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;
};
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;
};
RebuildObjectMapPayload,
RenamePayload,
UpdateFeaturesPayload,
+ MigratePayload,
+ SparsifyPayload,
UnknownPayload> Payload;
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);
};
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