]> git.proxmox.com Git - ceph.git/blob - ceph/src/messages/MMonGetPurgedSnaps.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / messages / MMonGetPurgedSnaps.h
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 "include/types.h"
8
9 class MMonGetPurgedSnaps final : public PaxosServiceMessage {
10 public:
11 epoch_t start, last;
12
13 MMonGetPurgedSnaps(epoch_t s=0, epoch_t l=0)
14 : PaxosServiceMessage{MSG_MON_GET_PURGED_SNAPS, 0},
15 start(s),
16 last(l) {}
17 private:
18 ~MMonGetPurgedSnaps() final {}
19
20 public:
21 std::string_view get_type_name() const override {
22 return "mon_get_purged_snaps";
23 }
24 void print(std::ostream& out) const override {
25 out << "mon_get_purged_snaps([" << start << "," << last << "])";
26 }
27
28 void encode_payload(uint64_t features) override {
29 using ceph::encode;
30 paxos_encode();
31 encode(start, payload);
32 encode(last, payload);
33 }
34 void decode_payload() override {
35 using ceph::decode;
36 auto p = payload.cbegin();
37 paxos_decode(p);
38 decode(start, p);
39 decode(last, p);
40 }
41
42 private:
43 template<class T, typename... Args>
44 friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args);
45 };