]> git.proxmox.com Git - ceph.git/blob - ceph/src/messages/MOSDBeacon.h
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / messages / MOSDBeacon.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 class MOSDBeacon : public PaxosServiceMessage {
7 public:
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 };