]>
Commit | Line | Data |
---|---|---|
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 | 10 | class MMonGetPurgedSnapsReply final : public PaxosServiceMessage { |
9f95a23c TL |
11 | public: |
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) {} | |
19 | private: | |
f67539c2 | 20 | ~MMonGetPurgedSnapsReply() final {} |
9f95a23c TL |
21 | |
22 | public: | |
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 | ||
46 | private: | |
47 | template<class T, typename... Args> | |
48 | friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args); | |
49 | }; |