]> git.proxmox.com Git - ceph.git/blame - ceph/src/messages/MOSDBeacon.h
update sources to 12.2.7
[ceph.git] / ceph / src / messages / MOSDBeacon.h
CommitLineData
7c673cae
FG
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
6class MOSDBeacon : public PaxosServiceMessage {
7public:
8 std::vector<pg_t> pgs;
9 epoch_t min_last_epoch_clean = 0;
10
11 MOSDBeacon()
12 : PaxosServiceMessage(MSG_OSD_BEACON, 0)
13 {}
14 MOSDBeacon(epoch_t e, epoch_t min_lec)
15 : PaxosServiceMessage(MSG_OSD_BEACON, e),
16 min_last_epoch_clean(min_lec)
17 {}
18 void encode_payload(uint64_t features) override {
19 paxos_encode();
20 ::encode(pgs, payload);
21 ::encode(min_last_epoch_clean, payload);
22 }
23 void decode_payload() override {
24 bufferlist::iterator p = payload.begin();
25 paxos_decode(p);
26 ::decode(pgs, p);
27 ::decode(min_last_epoch_clean, p);
28 }
29 const char *get_type_name() const override { return "osd_beacon"; }
30 void print(ostream &out) const {
31 out << get_type_name()
32 << "(pgs " << pgs
33 << " lec " << min_last_epoch_clean
34 << " v" << version << ")";
35 }
36};