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 "messages/PaxosServiceMessage.h"
7
8 class MOSDMarkMeDead : public PaxosServiceMessage {
9 private:
10 static constexpr int HEAD_VERSION = 1;
11 static constexpr int COMPAT_VERSION = 1;
12
13 public:
14 uuid_d fsid;
(1) Event member_decl: |
Class member declaration for "target_osd". |
Also see events: |
[uninit_member] |
15 int32_t target_osd;
16 epoch_t epoch = 0;
17
18 MOSDMarkMeDead()
19 : PaxosServiceMessage{MSG_OSD_MARK_ME_DEAD, 0,
(2) Event uninit_member: |
Non-static class member "target_osd" is not initialized in this constructor nor in any functions that it calls. |
Also see events: |
[member_decl] |
20 HEAD_VERSION, COMPAT_VERSION} { }
21 MOSDMarkMeDead(const uuid_d &fs, int osd,
22 epoch_t e)
23 : PaxosServiceMessage{MSG_OSD_MARK_ME_DEAD, e,
24 HEAD_VERSION, COMPAT_VERSION},
25 fsid(fs), target_osd(osd),
26 epoch(e) {}
27 private:
28 ~MOSDMarkMeDead() override {}
29
30 public:
31 epoch_t get_epoch() const { return epoch; }
32
33 void decode_payload() override {
34 auto p = payload.cbegin();
35 paxos_decode(p);
36 decode(fsid, p);
37 decode(target_osd, p);
38 decode(epoch, p);
39 }
40
41 void encode_payload(uint64_t features) override {
42 using ceph::encode;
43 paxos_encode();
44 header.version = HEAD_VERSION;
45 header.compat_version = COMPAT_VERSION;
46 encode(fsid, payload);
47 encode(target_osd, payload, features);
48 encode(epoch, payload);
49 }
50
51 std::string_view get_type_name() const override { return "MOSDMarkMeDead"; }
52 void print(ostream& out) const override {
53 out << "MOSDMarkMeDead("
54 << "osd." << target_osd
55 << ", epoch " << epoch
56 << ", fsid=" << fsid
57 << ")";
58 }
59 private:
60 template<class T, typename... Args>
61 friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args);
62 };
63