]> git.proxmox.com Git - ceph.git/blame - ceph/src/messages/MMonGetPurgedSnapsReply.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / messages / MMonGetPurgedSnapsReply.h
CommitLineData
9f95a23c
TL
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3
4#pragma once
5
6#include "PaxosServiceMessage.h"
7#include "osd/osd_types.h"
8#include "include/types.h"
9
f67539c2 10class MMonGetPurgedSnapsReply final : public PaxosServiceMessage {
9f95a23c
TL
11public:
12 epoch_t start, last;
f67539c2 13 std::map<epoch_t,mempool::osdmap::map<int64_t,snap_interval_set_t>> purged_snaps;
9f95a23c
TL
14
15 MMonGetPurgedSnapsReply(epoch_t s=0, epoch_t l=0)
16 : PaxosServiceMessage{MSG_MON_GET_PURGED_SNAPS_REPLY, 0},
17 start(s),
18 last(l) {}
19private:
f67539c2 20 ~MMonGetPurgedSnapsReply() final {}
9f95a23c
TL
21
22public:
23 std::string_view get_type_name() const override {
24 return "mon_get_purged_snaps_reply";
25 }
26 void print(std::ostream& out) const override {
27 out << "mon_get_purged_snaps_reply([" << start << "," << last << "])";
28 }
29
30 void encode_payload(uint64_t features) override {
31 using ceph::encode;
32 paxos_encode();
33 encode(start, payload);
34 encode(last, payload);
35 encode(purged_snaps, payload);
36 }
37 void decode_payload() override {
38 using ceph::decode;
39 auto p = payload.cbegin();
40 paxos_decode(p);
41 decode(start, p);
42 decode(last, p);
43 decode(purged_snaps, p);
44 }
45
46private:
47 template<class T, typename... Args>
48 friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args);
49};