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