#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;
}
MOSDPGPushReply()
- : MOSDFastDispatchOp(MSG_OSD_PG_PUSH_REPLY, HEAD_VERSION, COMPAT_VERSION),
+ : MessageInstance(MSG_OSD_PG_PUSH_REPLY, HEAD_VERSION, COMPAT_VERSION),
cost(0)
{}
}
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 {
out << ")";
}
- const char *get_type_name() const override { return "MOSDPGPushReply"; }
+ std::string_view get_type_name() const override { return "MOSDPGPushReply"; }
};
#endif