27
30
epoch_t query_epoch;
34
37
epoch_t get_epoch() { return epoch; }
35
38
pg_t get_pgid() { return info.pgid; }
36
39
epoch_t get_query_epoch() { return query_epoch; }
39
MOSDPGLog(version_t mv, PG::Info& i) :
40
Message(MSG_OSD_PG_LOG),
41
epoch(mv), query_epoch(mv), info(i) { }
42
MOSDPGLog(version_t mv, PG::Info& i, epoch_t query_epoch) :
43
Message(MSG_OSD_PG_LOG),
44
epoch(mv), query_epoch(query_epoch), info(i) { }
41
MOSDPGLog() : Message(MSG_OSD_PG_LOG, HEAD_VERSION) { }
42
MOSDPGLog(version_t mv, pg_info_t& i)
43
: Message(MSG_OSD_PG_LOG, HEAD_VERSION),
44
epoch(mv), query_epoch(mv), info(i) { }
45
MOSDPGLog(version_t mv, pg_info_t& i, epoch_t query_epoch)
46
: Message(MSG_OSD_PG_LOG, HEAD_VERSION),
47
epoch(mv), query_epoch(query_epoch), info(i) { }
49
const char *get_type_name() { return "PGlog"; }
50
void print(ostream& out) {
53
const char *get_type_name() const { return "PGlog"; }
54
void print(ostream& out) const {
51
55
out << "pg_log(" << info.pgid << " epoch " << epoch
52
56
<< " query_epoch " << query_epoch << ")";
55
void encode_payload(CephContext *cct) {
59
void encode_payload(uint64_t features) {
57
60
::encode(epoch, payload);
58
61
::encode(info, payload);
59
62
::encode(log, payload);
60
63
::encode(missing, payload);
61
64
::encode(query_epoch, payload);
63
void decode_payload(CephContext *cct) {
66
void decode_payload() {
64
67
bufferlist::iterator p = payload.begin();
65
68
::decode(epoch, p);
68
71
::decode(missing, p);
69
if (header.version > 1) {
72
if (header.version >= 2) {
70
73
::decode(query_epoch, p);