From 89cb1adeebfed58ea05c1538a6a6a9fc41e2256b Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Mon, 30 Jul 2018 10:03:23 -0700 Subject: [PATCH] msg: add factory method to correctly construct smart_ptr This is to avoid easy leaks of the form: boost::intrusive_ptr(new M*(...)); where a ref is leaked because constructing the intrusive_ptr adds a ref. It is expected that eventually all constructors move to protected/private so that the message's factory is the only way to build a new message (safely). Signed-off-by: Patrick Donnelly --- src/messages/MAuth.h | 8 +- src/messages/MAuthReply.h | 8 +- src/messages/MBackfillReserve.h | 6 + src/messages/MCacheExpire.h | 8 +- src/messages/MClientCapRelease.h | 9 +- src/messages/MClientCaps.h | 10 +- src/messages/MClientLease.h | 2 + src/messages/MClientQuota.h | 8 +- src/messages/MClientReconnect.h | 9 +- src/messages/MClientReply.h | 6 +- src/messages/MClientRequest.h | 8 +- src/messages/MClientRequestForward.h | 6 + src/messages/MClientSession.h | 8 +- src/messages/MClientSnap.h | 5 +- src/messages/MCommand.h | 4 +- src/messages/MCommandReply.h | 7 +- src/messages/MConfig.h | 8 +- src/messages/MDataPing.h | 7 +- src/messages/MDentryLink.h | 8 +- src/messages/MDentryUnlink.h | 9 +- src/messages/MDirUpdate.h | 3 + src/messages/MDiscover.h | 9 +- src/messages/MDiscoverReply.h | 9 +- src/messages/MExportCaps.h | 8 +- src/messages/MExportCapsAck.h | 5 +- src/messages/MExportDir.h | 4 +- src/messages/MExportDirAck.h | 3 + src/messages/MExportDirCancel.h | 8 +- src/messages/MExportDirDiscover.h | 8 +- src/messages/MExportDirDiscoverAck.h | 8 +- src/messages/MExportDirFinish.h | 8 +- src/messages/MExportDirNotify.h | 8 +- src/messages/MExportDirNotifyAck.h | 8 +- src/messages/MExportDirPrep.h | 8 +- src/messages/MExportDirPrepAck.h | 8 +- src/messages/MFSMap.h | 7 +- src/messages/MFSMapUser.h | 7 +- src/messages/MForward.h | 8 +- src/messages/MGatherCaps.h | 3 + src/messages/MGenericMessage.h | 6 + src/messages/MGetConfig.h | 8 +- src/messages/MGetPoolStats.h | 5 + src/messages/MGetPoolStatsReply.h | 5 + src/messages/MHeartbeat.h | 8 +- src/messages/MInodeFileCaps.h | 8 +- src/messages/MLock.h | 11 +- src/messages/MLog.h | 5 + src/messages/MLogAck.h | 5 + src/messages/MMDSBeacon.h | 9 +- src/messages/MMDSCacheRejoin.h | 9 +- src/messages/MMDSFindIno.h | 3 + src/messages/MMDSFindInoReply.h | 3 + src/messages/MMDSFragmentNotify.h | 8 +- src/messages/MMDSLoadTargets.h | 7 +- src/messages/MMDSMap.h | 8 +- src/messages/MMDSOpenIno.h | 5 +- src/messages/MMDSOpenInoReply.h | 2 + src/messages/MMDSResolve.h | 3 + src/messages/MMDSResolveAck.h | 5 +- src/messages/MMDSSlaveRequest.h | 5 +- src/messages/MMDSSnapUpdate.h | 9 +- src/messages/MMDSTableRequest.h | 4 +- src/messages/MMgrBeacon.h | 6 + src/messages/MMgrClose.h | 7 + src/messages/MMgrConfigure.h | 7 + src/messages/MMgrDigest.h | 5 + src/messages/MMgrMap.h | 6 + src/messages/MMgrOpen.h | 7 + src/messages/MMgrReport.h | 7 + src/messages/MMonCommand.h | 7 +- src/messages/MMonCommandAck.h | 7 +- src/messages/MMonElection.h | 6 + src/messages/MMonGetMap.h | 7 +- src/messages/MMonGetOSDMap.h | 7 + src/messages/MMonGetVersion.h | 5 + src/messages/MMonGetVersionReply.h | 7 +- src/messages/MMonGlobalID.h | 8 +- src/messages/MMonHealth.h | 9 +- src/messages/MMonHealthChecks.h | 9 +- src/messages/MMonJoin.h | 7 +- src/messages/MMonMap.h | 5 + src/messages/MMonMetadata.h | 5 + src/messages/MMonMgrReport.h | 7 +- src/messages/MMonPaxos.h | 7 +- src/messages/MMonProbe.h | 5 + src/messages/MMonQuorumService.h | 9 +- src/messages/MMonScrub.h | 9 +- src/messages/MMonSubscribe.h | 7 +- src/messages/MMonSubscribeAck.h | 8 +- src/messages/MMonSync.h | 9 +- src/messages/MNop.h | 5 + src/messages/MOSDAlive.h | 7 +- src/messages/MOSDBackoff.h | 5 + src/messages/MOSDBeacon.h | 5 + src/messages/MOSDBoot.h | 7 +- src/messages/MOSDECSubOpRead.h | 6 + src/messages/MOSDECSubOpReadReply.h | 6 + src/messages/MOSDECSubOpWrite.h | 6 + src/messages/MOSDECSubOpWriteReply.h | 6 + src/messages/MOSDFailure.h | 7 +- src/messages/MOSDFastDispatchOp.h | 5 + src/messages/MOSDForceRecovery.h | 7 +- src/messages/MOSDFull.h | 7 +- src/messages/MOSDMap.h | 7 +- src/messages/MOSDMarkMeDown.h | 7 +- src/messages/MOSDOp.h | 7 +- src/messages/MOSDOpReply.h | 7 +- src/messages/MOSDPGBackfill.h | 6 + src/messages/MOSDPGBackfillRemove.h | 7 +- src/messages/MOSDPGCreate.h | 7 +- src/messages/MOSDPGCreate2.h | 8 +- src/messages/MOSDPGCreated.h | 5 + src/messages/MOSDPGInfo.h | 6 + src/messages/MOSDPGLog.h | 7 +- src/messages/MOSDPGNotify.h | 7 +- src/messages/MOSDPGPull.h | 6 + src/messages/MOSDPGPush.h | 6 + src/messages/MOSDPGPushReply.h | 6 + src/messages/MOSDPGQuery.h | 6 + src/messages/MOSDPGRecoveryDelete.h | 7 +- src/messages/MOSDPGRecoveryDeleteReply.h | 8 +- src/messages/MOSDPGRemove.h | 7 +- src/messages/MOSDPGScan.h | 7 +- src/messages/MOSDPGTemp.h | 7 +- src/messages/MOSDPGTrim.h | 7 +- src/messages/MOSDPGUpdateLogMissing.h | 7 +- src/messages/MOSDPGUpdateLogMissingReply.h | 7 +- src/messages/MOSDPeeringOp.h | 5 + src/messages/MOSDPing.h | 7 +- src/messages/MOSDRepOp.h | 7 +- src/messages/MOSDRepOpReply.h | 6 + src/messages/MOSDRepScrub.h | 7 +- src/messages/MOSDRepScrubMap.h | 7 +- src/messages/MOSDScrub.h | 7 +- src/messages/MOSDScrub2.h | 7 +- src/messages/MOSDScrubReserve.h | 6 + src/messages/MPGStats.h | 5 + src/messages/MPGStatsAck.h | 5 + src/messages/MPing.h | 7 +- src/messages/MPoolOp.h | 7 +- src/messages/MPoolOpReply.h | 5 + src/messages/MRecoveryReserve.h | 6 + src/messages/MRemoveSnaps.h | 8 +- src/messages/MRoute.h | 7 +- src/messages/MServiceMap.h | 5 + src/messages/MStatfs.h | 7 +- src/messages/MStatfsReply.h | 5 + src/messages/MTimeCheck.h | 9 +- src/messages/MTimeCheck2.h | 9 +- src/messages/MWatchNotify.h | 6 + src/messages/PaxosServiceMessage.h | 7 +- src/msg/Message.cc | 300 ++++++++++----------- src/msg/Message.h | 9 + src/tools/ceph-dencoder/ceph_dencoder.cc | 20 +- src/tools/ceph-dencoder/types.h | 3 - 155 files changed, 1032 insertions(+), 308 deletions(-) diff --git a/src/messages/MAuth.h b/src/messages/MAuth.h index 62b0ba749777f..96397fd7a3fb4 100644 --- a/src/messages/MAuth.h +++ b/src/messages/MAuth.h @@ -17,7 +17,13 @@ #include "messages/PaxosServiceMessage.h" -struct MAuth : public PaxosServiceMessage { +class MAuth : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + __u32 protocol; bufferlist auth_payload; epoch_t monmap_epoch; diff --git a/src/messages/MAuthReply.h b/src/messages/MAuthReply.h index d81ddbf29ddcc..5fe8869adaf07 100644 --- a/src/messages/MAuthReply.h +++ b/src/messages/MAuthReply.h @@ -18,7 +18,13 @@ #include "msg/Message.h" #include "common/errno.h" -struct MAuthReply : public Message { +class MAuthReply : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + __u32 protocol; errorcode32_t result; uint64_t global_id; // if zero, meaningless diff --git a/src/messages/MBackfillReserve.h b/src/messages/MBackfillReserve.h index 6d8ea9eb6861e..3d11aac9e289d 100644 --- a/src/messages/MBackfillReserve.h +++ b/src/messages/MBackfillReserve.h @@ -19,6 +19,12 @@ #include "messages/MOSDPeeringOp.h" class MBackfillReserve : public MOSDPeeringOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 4; public: diff --git a/src/messages/MCacheExpire.h b/src/messages/MCacheExpire.h index e8542424467fd..3f0f953c53971 100644 --- a/src/messages/MCacheExpire.h +++ b/src/messages/MCacheExpire.h @@ -22,11 +22,15 @@ #include "mds/mdstypes.h" class MCacheExpire : public Message { - __s32 from; - public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + __s32 from; + +public: /* group things by realm (auth delgation root), since that's how auth is determined. that makes it less work to process when exports are in progress. diff --git a/src/messages/MClientCapRelease.h b/src/messages/MClientCapRelease.h index 07692a7263fff..1cd8b87819c0c 100644 --- a/src/messages/MClientCapRelease.h +++ b/src/messages/MClientCapRelease.h @@ -19,11 +19,16 @@ class MClientCapRelease : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; struct ceph_mds_cap_release head; vector caps; diff --git a/src/messages/MClientCaps.h b/src/messages/MClientCaps.h index 57a21bae03d86..b3f089610679c 100644 --- a/src/messages/MClientCaps.h +++ b/src/messages/MClientCaps.h @@ -19,13 +19,17 @@ #include "include/ceph_features.h" class MClientCaps : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + static const int HEAD_VERSION = 11; static const int COMPAT_VERSION = 1; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; - static const unsigned FLAG_SYNC = (1<<0); static const unsigned FLAG_NO_CAPSNAP = (1<<1); // unused static const unsigned FLAG_PENDING_CAPSNAP = (1<<2); diff --git a/src/messages/MClientLease.h b/src/messages/MClientLease.h index b127c90e1fb63..4dc8b5247df64 100644 --- a/src/messages/MClientLease.h +++ b/src/messages/MClientLease.h @@ -24,6 +24,8 @@ class MClientLease : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; struct ceph_mds_lease h; std::string dname; diff --git a/src/messages/MClientQuota.h b/src/messages/MClientQuota.h index 297d2df56a8bd..701f2155cf2da 100644 --- a/src/messages/MClientQuota.h +++ b/src/messages/MClientQuota.h @@ -3,7 +3,13 @@ #include "msg/Message.h" -struct MClientQuota : public Message { +class MClientQuota : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + inodeno_t ino; nest_info_t rstat; quota_info_t quota; diff --git a/src/messages/MClientReconnect.h b/src/messages/MClientReconnect.h index 6740fbb1d40ec..42e611131b897 100644 --- a/src/messages/MClientReconnect.h +++ b/src/messages/MClientReconnect.h @@ -21,12 +21,15 @@ class MClientReconnect : public Message { - - const static int HEAD_VERSION = 3; - public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + const static int HEAD_VERSION = 3; + +public: map caps; // only head inodes vector realms; diff --git a/src/messages/MClientReply.h b/src/messages/MClientReply.h index 34a017ffb092c..0892c13caa834 100644 --- a/src/messages/MClientReply.h +++ b/src/messages/MClientReply.h @@ -254,16 +254,18 @@ struct InodeStat { class MClientReply : public Message { - // reply data public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + + // reply data struct ceph_mds_reply_head head {}; bufferlist trace_bl; bufferlist extra_bl; bufferlist snapbl; - public: int get_op() const { return head.op; } void set_mdsmap_epoch(epoch_t e) { head.mdsmap_epoch = e; } diff --git a/src/messages/MClientRequest.h b/src/messages/MClientRequest.h index f7771d133ffb1..98533d3622405 100644 --- a/src/messages/MClientRequest.h +++ b/src/messages/MClientRequest.h @@ -49,12 +49,16 @@ // metadata ops. class MClientRequest : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 1; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; mutable struct ceph_mds_request_head head; /* XXX HACK! */ utime_t stamp; diff --git a/src/messages/MClientRequestForward.h b/src/messages/MClientRequestForward.h index 9a4403f4a7c96..79d62989bcd73 100644 --- a/src/messages/MClientRequestForward.h +++ b/src/messages/MClientRequestForward.h @@ -19,6 +19,12 @@ #include "msg/Message.h" class MClientRequestForward : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: int32_t dest_mds; int32_t num_fwd; bool client_must_resend; diff --git a/src/messages/MClientSession.h b/src/messages/MClientSession.h index 3589d291e6960..816a8f83b3048 100644 --- a/src/messages/MClientSession.h +++ b/src/messages/MClientSession.h @@ -19,12 +19,16 @@ #include "mds/mdstypes.h" class MClientSession : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; ceph_mds_session_head head; std::map metadata; diff --git a/src/messages/MClientSnap.h b/src/messages/MClientSnap.h index b7b8864c5c310..920a8b6ba21a4 100644 --- a/src/messages/MClientSnap.h +++ b/src/messages/MClientSnap.h @@ -17,9 +17,12 @@ #include "msg/Message.h" -struct MClientSnap : public Message { +class MClientSnap : public Message { +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; ceph_mds_snap_head head; bufferlist bl; diff --git a/src/messages/MCommand.h b/src/messages/MCommand.h index e0773181be93c..3f7d73999cf2c 100644 --- a/src/messages/MCommand.h +++ b/src/messages/MCommand.h @@ -20,9 +20,11 @@ #include "msg/Message.h" class MCommand : public Message { - public: +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; uuid_d fsid; std::vector cmd; diff --git a/src/messages/MCommandReply.h b/src/messages/MCommandReply.h index cba70cc834bfd..3390aa8d78774 100644 --- a/src/messages/MCommandReply.h +++ b/src/messages/MCommandReply.h @@ -21,7 +21,12 @@ #include "MCommand.h" class MCommandReply : public Message { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + errorcode32_t r; string rs; diff --git a/src/messages/MConfig.h b/src/messages/MConfig.h index 683a433bcb386..1a0aa8d1f28cb 100644 --- a/src/messages/MConfig.h +++ b/src/messages/MConfig.h @@ -5,7 +5,13 @@ #include "msg/Message.h" -struct MConfig : public Message { +class MConfig : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MDataPing.h b/src/messages/MDataPing.h index f1bc8e423b5dd..3d17669759dfb 100644 --- a/src/messages/MDataPing.h +++ b/src/messages/MDataPing.h @@ -29,8 +29,11 @@ struct xio_reg_mem {}; typedef void (*mdata_hook_func)(struct xio_reg_mem *mp); class MDataPing : public Message { - - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MDentryLink.h b/src/messages/MDentryLink.h index 3799f393b6144..018e2b3b90da9 100644 --- a/src/messages/MDentryLink.h +++ b/src/messages/MDentryLink.h @@ -21,14 +21,18 @@ #include "msg/Message.h" class MDentryLink : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t subtree; dirfrag_t dirfrag; string dn; bool is_primary = false; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_subtree() const { return subtree; } dirfrag_t get_dirfrag() const { return dirfrag; } const string& get_dn() const { return dn; } diff --git a/src/messages/MDentryUnlink.h b/src/messages/MDentryUnlink.h index 613c1077bbb0d..ef2faa5804238 100644 --- a/src/messages/MDentryUnlink.h +++ b/src/messages/MDentryUnlink.h @@ -21,12 +21,17 @@ #include "msg/Message.h" class MDentryUnlink : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + dirfrag_t dirfrag; string dn; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_dirfrag() const { return dirfrag; } const string& get_dn() const { return dn; } diff --git a/src/messages/MDirUpdate.h b/src/messages/MDirUpdate.h index d15f24e1ef180..4ecb79d649d22 100644 --- a/src/messages/MDirUpdate.h +++ b/src/messages/MDirUpdate.h @@ -22,6 +22,9 @@ class MDirUpdate : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + MDirUpdate() : Message(MSG_MDS_DIRUPDATE) {} MDirUpdate(mds_rank_t f, dirfrag_t dirfrag, diff --git a/src/messages/MDiscover.h b/src/messages/MDiscover.h index a1004f2e3252b..d035253c44def 100644 --- a/src/messages/MDiscover.h +++ b/src/messages/MDiscover.h @@ -23,6 +23,13 @@ class MDiscover : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + inodeno_t base_ino; // 1 -> root frag_t base_dir_frag; @@ -33,8 +40,6 @@ class MDiscover : public Message { bool want_xlocked = false; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; inodeno_t get_base_ino() const { return base_ino; } frag_t get_base_dir_frag() const { return base_dir_frag; } snapid_t get_snapid() const { return snapid; } diff --git a/src/messages/MDiscoverReply.h b/src/messages/MDiscoverReply.h index 8d86f267e44b8..bc15d7da750cc 100644 --- a/src/messages/MDiscoverReply.h +++ b/src/messages/MDiscoverReply.h @@ -64,7 +64,12 @@ */ class MDiscoverReply : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; // info about original request @@ -83,8 +88,6 @@ class MDiscoverReply : public Message { mds_rank_t dir_auth_hint = 0; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; __u8 starts_with = 0; bufferlist trace; diff --git a/src/messages/MExportCaps.h b/src/messages/MExportCaps.h index 82d64935fab9a..f538dab256d65 100644 --- a/src/messages/MExportCaps.h +++ b/src/messages/MExportCaps.h @@ -20,11 +20,15 @@ class MExportCaps : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; inodeno_t ino; bufferlist cap_bl; map client_map; diff --git a/src/messages/MExportCapsAck.h b/src/messages/MExportCapsAck.h index 2ff1643661f32..a6b800043130e 100644 --- a/src/messages/MExportCapsAck.h +++ b/src/messages/MExportCapsAck.h @@ -20,9 +20,12 @@ class MExportCapsAck : public Message { - public: +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + inodeno_t ino; bufferlist cap_bl; diff --git a/src/messages/MExportDir.h b/src/messages/MExportDir.h index 29e9fa7fc0433..90d58cd1cc203 100644 --- a/src/messages/MExportDir.h +++ b/src/messages/MExportDir.h @@ -20,9 +20,11 @@ class MExportDir : public Message { - public: +public: typedef boost::intrusive_ptrref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; dirfrag_t dirfrag; bufferlist export_data; vector bounds; diff --git a/src/messages/MExportDirAck.h b/src/messages/MExportDirAck.h index ff076eca5d2ac..9aa49f516ec9e 100644 --- a/src/messages/MExportDirAck.h +++ b/src/messages/MExportDirAck.h @@ -22,6 +22,9 @@ class MExportDirAck : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + dirfrag_t dirfrag; bufferlist imported_caps; diff --git a/src/messages/MExportDirCancel.h b/src/messages/MExportDirCancel.h index 96892a13a2879..c63b4e9d8a7cd 100644 --- a/src/messages/MExportDirCancel.h +++ b/src/messages/MExportDirCancel.h @@ -19,11 +19,15 @@ #include "include/types.h" class MExportDirCancel : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t dirfrag; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_dirfrag() const { return dirfrag; } MExportDirCancel() : Message(MSG_MDS_EXPORTDIRCANCEL) {} diff --git a/src/messages/MExportDirDiscover.h b/src/messages/MExportDirDiscover.h index cb581d207db94..1b6f41815c093 100644 --- a/src/messages/MExportDirDiscover.h +++ b/src/messages/MExportDirDiscover.h @@ -19,13 +19,17 @@ #include "include/types.h" class MExportDirDiscover : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: mds_rank_t from = -1; dirfrag_t dirfrag; filepath path; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; mds_rank_t get_source_mds() const { return from; } inodeno_t get_ino() const { return dirfrag.ino; } dirfrag_t get_dirfrag() const { return dirfrag; } diff --git a/src/messages/MExportDirDiscoverAck.h b/src/messages/MExportDirDiscoverAck.h index c6bc716f9c574..ab76e7a37e805 100644 --- a/src/messages/MExportDirDiscoverAck.h +++ b/src/messages/MExportDirDiscoverAck.h @@ -19,12 +19,16 @@ #include "include/types.h" class MExportDirDiscoverAck : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t dirfrag; bool success; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; inodeno_t get_ino() const { return dirfrag.ino; } dirfrag_t get_dirfrag() const { return dirfrag; } bool is_success() const { return success; } diff --git a/src/messages/MExportDirFinish.h b/src/messages/MExportDirFinish.h index 6f7bb1aa2f8a5..7c6f21d30cabb 100644 --- a/src/messages/MExportDirFinish.h +++ b/src/messages/MExportDirFinish.h @@ -18,12 +18,16 @@ #include "msg/Message.h" class MExportDirFinish : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t dirfrag; bool last; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_dirfrag() const { return dirfrag; } bool is_last() const { return last; } diff --git a/src/messages/MExportDirNotify.h b/src/messages/MExportDirNotify.h index 21142a0a83f59..7d4b7da06ca17 100644 --- a/src/messages/MExportDirNotify.h +++ b/src/messages/MExportDirNotify.h @@ -18,14 +18,18 @@ #include "msg/Message.h" class MExportDirNotify : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t base; bool ack; pair<__s32,__s32> old_auth, new_auth; list bounds; // bounds; these dirs are _not_ included (tho the dirfragdes are) public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_dirfrag() const { return base; } pair<__s32,__s32> get_old_auth() const { return old_auth; } pair<__s32,__s32> get_new_auth() const { return new_auth; } diff --git a/src/messages/MExportDirNotifyAck.h b/src/messages/MExportDirNotifyAck.h index 64c4a5272fde1..eea1ca5a60382 100644 --- a/src/messages/MExportDirNotifyAck.h +++ b/src/messages/MExportDirNotifyAck.h @@ -18,12 +18,16 @@ #include "msg/Message.h" class MExportDirNotifyAck : public Message { +public: + typedef boost::intrusive_ptrref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t dirfrag; pair<__s32,__s32> new_auth; public: - typedef boost::intrusive_ptrref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_dirfrag() const { return dirfrag; } pair<__s32,__s32> get_new_auth() const { return new_auth; } diff --git a/src/messages/MExportDirPrep.h b/src/messages/MExportDirPrep.h index 8eb0eda78c8f2..9c2ea6f9598a2 100644 --- a/src/messages/MExportDirPrep.h +++ b/src/messages/MExportDirPrep.h @@ -20,10 +20,14 @@ #include "include/types.h" class MExportDirPrep : public Message { - dirfrag_t dirfrag; - public: +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + dirfrag_t dirfrag; + public: bufferlist basedir; list bounds; list traces; diff --git a/src/messages/MExportDirPrepAck.h b/src/messages/MExportDirPrepAck.h index 94a36bdcaa49f..7e8c9d4643232 100644 --- a/src/messages/MExportDirPrepAck.h +++ b/src/messages/MExportDirPrepAck.h @@ -19,12 +19,16 @@ #include "include/types.h" class MExportDirPrepAck : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: dirfrag_t dirfrag; bool success = false; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; dirfrag_t get_dirfrag() const { return dirfrag; } MExportDirPrepAck() {} diff --git a/src/messages/MFSMap.h b/src/messages/MFSMap.h index 1019582472991..67ab3506a01e7 100644 --- a/src/messages/MFSMap.h +++ b/src/messages/MFSMap.h @@ -21,7 +21,12 @@ #include "include/ceph_features.h" class MFSMap : public Message { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + epoch_t epoch; bufferlist encoded; diff --git a/src/messages/MFSMapUser.h b/src/messages/MFSMapUser.h index 347976a62e0a4..a5c06f460caea 100644 --- a/src/messages/MFSMapUser.h +++ b/src/messages/MFSMapUser.h @@ -20,7 +20,12 @@ #include "include/ceph_features.h" class MFSMapUser : public Message { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + epoch_t epoch; version_t get_epoch() const { return epoch; } diff --git a/src/messages/MForward.h b/src/messages/MForward.h index 93949c6064da0..9f681a3493570 100644 --- a/src/messages/MForward.h +++ b/src/messages/MForward.h @@ -24,7 +24,13 @@ #include "include/encoding.h" #include "include/stringify.h" -struct MForward : public Message { +class MForward : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uint64_t tid; uint8_t client_type; entity_addrvec_t client_addrs; diff --git a/src/messages/MGatherCaps.h b/src/messages/MGatherCaps.h index 73d8d08d4091a..57d30871fbc41 100644 --- a/src/messages/MGatherCaps.h +++ b/src/messages/MGatherCaps.h @@ -8,6 +8,9 @@ class MGatherCaps : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + inodeno_t ino; diff --git a/src/messages/MGenericMessage.h b/src/messages/MGenericMessage.h index d84209e36b4fa..7ef0f6beff8b1 100644 --- a/src/messages/MGenericMessage.h +++ b/src/messages/MGenericMessage.h @@ -19,6 +19,12 @@ #include "msg/Message.h" class MGenericMessage : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: char tname[20]; //long pcid; diff --git a/src/messages/MGetConfig.h b/src/messages/MGetConfig.h index e489276be3991..d7add127e18fc 100644 --- a/src/messages/MGetConfig.h +++ b/src/messages/MGetConfig.h @@ -5,7 +5,13 @@ #include "msg/Message.h" -struct MGetConfig : public Message { +class MGetConfig : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MGetPoolStats.h b/src/messages/MGetPoolStats.h index 73f0121ba77de..a21c6eb5c4b08 100644 --- a/src/messages/MGetPoolStats.h +++ b/src/messages/MGetPoolStats.h @@ -20,6 +20,11 @@ class MGetPoolStats : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; list pools; diff --git a/src/messages/MGetPoolStatsReply.h b/src/messages/MGetPoolStatsReply.h index 829ed197e8bfa..af4834b678aad 100644 --- a/src/messages/MGetPoolStatsReply.h +++ b/src/messages/MGetPoolStatsReply.h @@ -18,6 +18,11 @@ class MGetPoolStatsReply : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; map pool_stats; diff --git a/src/messages/MHeartbeat.h b/src/messages/MHeartbeat.h index 3d7f98dd02c97..1b7293e8fb4e2 100644 --- a/src/messages/MHeartbeat.h +++ b/src/messages/MHeartbeat.h @@ -21,13 +21,17 @@ #include "common/DecayCounter.h" class MHeartbeat : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: mds_load_t load; __s32 beat = 0; map import_map; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; const mds_load_t& get_load() const { return load; } int get_beat() const { return beat; } diff --git a/src/messages/MInodeFileCaps.h b/src/messages/MInodeFileCaps.h index a5e5c541652fa..e2fc76c72b84e 100644 --- a/src/messages/MInodeFileCaps.h +++ b/src/messages/MInodeFileCaps.h @@ -19,12 +19,16 @@ #include "msg/Message.h" class MInodeFileCaps : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: inodeno_t ino; __u32 caps = 0; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; inodeno_t get_ino() const { return ino; } int get_caps() const { return caps; } diff --git a/src/messages/MLock.h b/src/messages/MLock.h index 4b992ff1bc8bd..002cd98f9a041 100644 --- a/src/messages/MLock.h +++ b/src/messages/MLock.h @@ -21,6 +21,12 @@ #include "mds/SimpleLock.h" class MLock : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: int32_t action = 0; // action type mds_rank_t asker = 0; // who is initiating this request metareqid_t reqid; // for remote lock requests @@ -31,9 +37,6 @@ class MLock : public Message { bufferlist lockdata; // and possibly some data public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; - bufferlist& get_data() { return lockdata; } const bufferlist& get_data() const { return lockdata; } int get_asker() const { return asker; } @@ -43,7 +46,7 @@ public: int get_lock_type() const { return lock_type; } const MDSCacheObjectInfo &get_object_info() const { return object_info; } MDSCacheObjectInfo &get_object_info() { return object_info; } - + MLock() : Message(MSG_MDS_LOCK) {} MLock(int ac, mds_rank_t as) : Message(MSG_MDS_LOCK), diff --git a/src/messages/MLog.h b/src/messages/MLog.h index 1d24c66be6aba..01e56418352ee 100644 --- a/src/messages/MLog.h +++ b/src/messages/MLog.h @@ -22,6 +22,11 @@ class MLog : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; std::deque entries; diff --git a/src/messages/MLogAck.h b/src/messages/MLogAck.h index 24db185dbc1ec..91f74e9ac2974 100644 --- a/src/messages/MLogAck.h +++ b/src/messages/MLogAck.h @@ -17,6 +17,11 @@ class MLogAck : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; version_t last = 0; std::string channel; diff --git a/src/messages/MMDSBeacon.h b/src/messages/MMDSBeacon.h index 036c6d5a991e4..a306371e5ba16 100644 --- a/src/messages/MMDSBeacon.h +++ b/src/messages/MMDSBeacon.h @@ -180,6 +180,12 @@ WRITE_CLASS_ENCODER(MDSHealth) class MMDSBeacon : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 7; static const int COMPAT_VERSION = 6; @@ -205,9 +211,6 @@ class MMDSBeacon : public PaxosServiceMessage { uint64_t mds_features; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; - MMDSBeacon() : PaxosServiceMessage(MSG_MDS_BEACON, 0, HEAD_VERSION, COMPAT_VERSION), global_id(0), state(MDSMap::STATE_NULL), standby_for_rank(MDS_RANK_NONE), diff --git a/src/messages/MMDSCacheRejoin.h b/src/messages/MMDSCacheRejoin.h index c49c2ecebddca..7d53829c2cd4e 100644 --- a/src/messages/MMDSCacheRejoin.h +++ b/src/messages/MMDSCacheRejoin.h @@ -28,14 +28,17 @@ // sent from replica to auth class MMDSCacheRejoin : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; - static const int OP_WEAK = 1; // replica -> auth, i exist, + maybe open files. static const int OP_STRONG = 2; // replica -> auth, i exist, + open files and lock state. static const int OP_ACK = 3; // auth -> replica, here is your lock state. diff --git a/src/messages/MMDSFindIno.h b/src/messages/MMDSFindIno.h index 2d0cd8c6c6994..bfba7c5ef152c 100644 --- a/src/messages/MMDSFindIno.h +++ b/src/messages/MMDSFindIno.h @@ -22,6 +22,9 @@ class MMDSFindIno : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + ceph_tid_t tid {0}; inodeno_t ino; diff --git a/src/messages/MMDSFindInoReply.h b/src/messages/MMDSFindInoReply.h index 4680dd90d8a6b..dc61ba8d06a75 100644 --- a/src/messages/MMDSFindInoReply.h +++ b/src/messages/MMDSFindInoReply.h @@ -22,6 +22,9 @@ class MMDSFindInoReply : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + ceph_tid_t tid = 0; filepath path; diff --git a/src/messages/MMDSFragmentNotify.h b/src/messages/MMDSFragmentNotify.h index 650bba7d0eb51..2618d9755f1c8 100644 --- a/src/messages/MMDSFragmentNotify.h +++ b/src/messages/MMDSFragmentNotify.h @@ -18,13 +18,17 @@ #include "msg/Message.h" class MMDSFragmentNotify : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: inodeno_t ino; frag_t basefrag; int8_t bits = 0; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; inodeno_t get_ino() const { return ino; } frag_t get_basefrag() const { return basefrag; } int get_bits() const { return bits; } diff --git a/src/messages/MMDSLoadTargets.h b/src/messages/MMDSLoadTargets.h index 6432ce791f046..687775263bfed 100644 --- a/src/messages/MMDSLoadTargets.h +++ b/src/messages/MMDSLoadTargets.h @@ -24,7 +24,12 @@ using std::map; class MMDSLoadTargets : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + mds_gid_t global_id; set targets; diff --git a/src/messages/MMDSMap.h b/src/messages/MMDSMap.h index 7f9f764d6922f..03fb08791d457 100644 --- a/src/messages/MMDSMap.h +++ b/src/messages/MMDSMap.h @@ -21,12 +21,16 @@ #include "include/ceph_features.h" class MMDSMap : public Message { - static const int HEAD_VERSION = 1; - static const int COMPAT_VERSION = 1; public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + static const int HEAD_VERSION = 1; + static const int COMPAT_VERSION = 1; +public: uuid_d fsid; epoch_t epoch = 0; bufferlist encoded; diff --git a/src/messages/MMDSOpenIno.h b/src/messages/MMDSOpenIno.h index a7f775302bbe7..6f62c136d36fa 100644 --- a/src/messages/MMDSOpenIno.h +++ b/src/messages/MMDSOpenIno.h @@ -17,10 +17,13 @@ #include "msg/Message.h" -struct MMDSOpenIno : public Message { +class MMDSOpenIno : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + inodeno_t ino; vector ancestors; diff --git a/src/messages/MMDSOpenInoReply.h b/src/messages/MMDSOpenInoReply.h index 555b9fd33c633..77f1777e6cb55 100644 --- a/src/messages/MMDSOpenInoReply.h +++ b/src/messages/MMDSOpenInoReply.h @@ -21,6 +21,8 @@ class MMDSOpenInoReply : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; inodeno_t ino; vector ancestors; diff --git a/src/messages/MMDSResolve.h b/src/messages/MMDSResolve.h index 65de1f313312e..4316c981a0a13 100644 --- a/src/messages/MMDSResolve.h +++ b/src/messages/MMDSResolve.h @@ -23,6 +23,9 @@ class MMDSResolve : public Message { public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + map > subtrees; map > ambiguous_imports; diff --git a/src/messages/MMDSResolveAck.h b/src/messages/MMDSResolveAck.h index 68cd164124da5..cdc0fd3c97f37 100644 --- a/src/messages/MMDSResolveAck.h +++ b/src/messages/MMDSResolveAck.h @@ -21,9 +21,12 @@ class MMDSResolveAck : public Message { - public: +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + map commit; vector abort; diff --git a/src/messages/MMDSSlaveRequest.h b/src/messages/MMDSSlaveRequest.h index 2b688921e1cbe..a2b4c25e30994 100644 --- a/src/messages/MMDSSlaveRequest.h +++ b/src/messages/MMDSSlaveRequest.h @@ -20,9 +20,12 @@ #include "mds/mdstypes.h" class MMDSSlaveRequest : public Message { - public: +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int OP_XLOCK = 1; static const int OP_XLOCKACK = -1; static const int OP_UNXLOCK = 2; diff --git a/src/messages/MMDSSnapUpdate.h b/src/messages/MMDSSnapUpdate.h index 0c848ca038281..ae36b314773b6 100644 --- a/src/messages/MMDSSnapUpdate.h +++ b/src/messages/MMDSSnapUpdate.h @@ -18,12 +18,17 @@ #include "msg/Message.h" class MMDSSnapUpdate : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + inodeno_t ino; __s16 snap_op; public: - typedef boost::intrusive_ptr ref; - typedef boost::intrusive_ptr const_ref; inodeno_t get_ino() const { return ino; } int get_snap_op() const { return snap_op; } diff --git a/src/messages/MMDSTableRequest.h b/src/messages/MMDSTableRequest.h index cac5d33f8223a..bc8165a8c42ed 100644 --- a/src/messages/MMDSTableRequest.h +++ b/src/messages/MMDSTableRequest.h @@ -20,9 +20,11 @@ #include "mds/mds_table_types.h" class MMDSTableRequest : public Message { - public: +public: typedef boost::intrusive_ptr ref; typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; __u16 table = 0; __s16 op = 0; diff --git a/src/messages/MMgrBeacon.h b/src/messages/MMgrBeacon.h index de76aaa70a3fc..91e7208a1d307 100644 --- a/src/messages/MMgrBeacon.h +++ b/src/messages/MMgrBeacon.h @@ -23,6 +23,12 @@ class MMgrBeacon : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 8; static const int COMPAT_VERSION = 8; diff --git a/src/messages/MMgrClose.h b/src/messages/MMgrClose.h index 83946e7b43f4c..d6b8415076b76 100644 --- a/src/messages/MMgrClose.h +++ b/src/messages/MMgrClose.h @@ -7,6 +7,13 @@ class MMgrClose : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMgrConfigure.h b/src/messages/MMgrConfigure.h index c65d2ba550048..c65d01229c5f0 100644 --- a/src/messages/MMgrConfigure.h +++ b/src/messages/MMgrConfigure.h @@ -23,6 +23,13 @@ */ class MMgrConfigure : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMgrDigest.h b/src/messages/MMgrDigest.h index 31fff83fa09f2..ad0863f36aa05 100644 --- a/src/messages/MMgrDigest.h +++ b/src/messages/MMgrDigest.h @@ -24,6 +24,11 @@ */ class MMgrDigest : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + bufferlist mon_status_json; bufferlist health_json; diff --git a/src/messages/MMgrMap.h b/src/messages/MMgrMap.h index 1fbfdcca6a897..f15bba1bff035 100644 --- a/src/messages/MMgrMap.h +++ b/src/messages/MMgrMap.h @@ -20,6 +20,12 @@ #include "mon/MgrMap.h" class MMgrMap : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + protected: MgrMap map; diff --git a/src/messages/MMgrOpen.h b/src/messages/MMgrOpen.h index af60a91276110..7db57a51d0577 100644 --- a/src/messages/MMgrOpen.h +++ b/src/messages/MMgrOpen.h @@ -19,6 +19,13 @@ class MMgrOpen : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMgrReport.h b/src/messages/MMgrReport.h index 86c9170249b30..fdc46410519e9 100644 --- a/src/messages/MMgrReport.h +++ b/src/messages/MMgrReport.h @@ -72,6 +72,13 @@ WRITE_CLASS_ENCODER(PerfCounterType) class MMgrReport : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + static const int HEAD_VERSION = 6; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMonCommand.h b/src/messages/MMonCommand.h index c9a2e10b9e780..f609c4bc849bb 100644 --- a/src/messages/MMonCommand.h +++ b/src/messages/MMonCommand.h @@ -21,7 +21,12 @@ #include class MMonCommand : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; std::vector cmd; diff --git a/src/messages/MMonCommandAck.h b/src/messages/MMonCommandAck.h index b98f28fd89e94..4d2c442bca954 100644 --- a/src/messages/MMonCommandAck.h +++ b/src/messages/MMonCommandAck.h @@ -18,7 +18,12 @@ #include "messages/PaxosServiceMessage.h" class MMonCommandAck : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + vector cmd; errorcode32_t r; string rs; diff --git a/src/messages/MMonElection.h b/src/messages/MMonElection.h index c932e9ed68ccc..ad15fe998537c 100644 --- a/src/messages/MMonElection.h +++ b/src/messages/MMonElection.h @@ -21,7 +21,13 @@ #include "mon/mon_types.h" class MMonElection : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 7; static const int COMPAT_VERSION = 5; diff --git a/src/messages/MMonGetMap.h b/src/messages/MMonGetMap.h index 45682d1dd001d..eaae9d0b16a96 100644 --- a/src/messages/MMonGetMap.h +++ b/src/messages/MMonGetMap.h @@ -20,7 +20,12 @@ #include "include/types.h" class MMonGetMap : public Message { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + MMonGetMap() : Message(CEPH_MSG_MON_GET_MAP) { } private: ~MMonGetMap() override {} diff --git a/src/messages/MMonGetOSDMap.h b/src/messages/MMonGetOSDMap.h index 79546193969c8..5579c250a7928 100644 --- a/src/messages/MMonGetOSDMap.h +++ b/src/messages/MMonGetOSDMap.h @@ -20,6 +20,13 @@ #include "include/types.h" class MMonGetOSDMap : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: + epoch_t full_first, full_last; epoch_t inc_first, inc_last; diff --git a/src/messages/MMonGetVersion.h b/src/messages/MMonGetVersion.h index 39c197145d51a..07faee88bf486 100644 --- a/src/messages/MMonGetVersion.h +++ b/src/messages/MMonGetVersion.h @@ -27,6 +27,11 @@ */ class MMonGetVersion : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + MMonGetVersion() : Message(CEPH_MSG_MON_GET_VERSION) {} const char *get_type_name() const override { diff --git a/src/messages/MMonGetVersionReply.h b/src/messages/MMonGetVersionReply.h index b392fc186abcb..2bc0fab787505 100644 --- a/src/messages/MMonGetVersionReply.h +++ b/src/messages/MMonGetVersionReply.h @@ -25,7 +25,12 @@ * back. */ class MMonGetVersionReply : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; public: diff --git a/src/messages/MMonGlobalID.h b/src/messages/MMonGlobalID.h index d7f126778b395..84db54bc4189a 100644 --- a/src/messages/MMonGlobalID.h +++ b/src/messages/MMonGlobalID.h @@ -17,7 +17,13 @@ #include "messages/PaxosServiceMessage.h" -struct MMonGlobalID : public PaxosServiceMessage { +class MMonGlobalID : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uint64_t old_max_id; MMonGlobalID() : PaxosServiceMessage(MSG_MON_GLOBAL_ID, 0), old_max_id(0) { } private: diff --git a/src/messages/MMonHealth.h b/src/messages/MMonHealth.h index b3b734b5b6910..0443dca292c75 100644 --- a/src/messages/MMonHealth.h +++ b/src/messages/MMonHealth.h @@ -18,8 +18,13 @@ #include "messages/MMonQuorumService.h" #include "mon/mon_types.h" -struct MMonHealth : public MMonQuorumService -{ +class MMonHealth : public MMonQuorumService { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; int service_type = 0; diff --git a/src/messages/MMonHealthChecks.h b/src/messages/MMonHealthChecks.h index c7d606d91bd4e..30962f601d38c 100644 --- a/src/messages/MMonHealthChecks.h +++ b/src/messages/MMonHealthChecks.h @@ -7,8 +7,13 @@ #include "messages/PaxosServiceMessage.h" #include "mon/health_check.h" -struct MMonHealthChecks : public PaxosServiceMessage -{ +class MMonHealthChecks : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMonJoin.h b/src/messages/MMonJoin.h index 76bf487707efa..597b1039f4c71 100644 --- a/src/messages/MMonJoin.h +++ b/src/messages/MMonJoin.h @@ -21,7 +21,12 @@ using std::vector; class MMonJoin : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; string name; entity_addr_t addr; diff --git a/src/messages/MMonMap.h b/src/messages/MMonMap.h index e44e1eb936e87..8cd9c5d3f2921 100644 --- a/src/messages/MMonMap.h +++ b/src/messages/MMonMap.h @@ -21,6 +21,11 @@ class MMonMap : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + bufferlist monmapbl; MMonMap() : Message(CEPH_MSG_MON_MAP) { } diff --git a/src/messages/MMonMetadata.h b/src/messages/MMonMetadata.h index 9caad8661c60a..1e50e43cd4285 100644 --- a/src/messages/MMonMetadata.h +++ b/src/messages/MMonMetadata.h @@ -20,6 +20,11 @@ class MMonMetadata : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + Metadata data; private: diff --git a/src/messages/MMonMgrReport.h b/src/messages/MMonMgrReport.h index 72ae62270779d..81464ff61b337 100644 --- a/src/messages/MMonMgrReport.h +++ b/src/messages/MMonMgrReport.h @@ -21,7 +21,12 @@ #include "mon/health_check.h" class MMonMgrReport : public PaxosServiceMessage { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMonPaxos.h b/src/messages/MMonPaxos.h index ff0a6ee5975f8..a872f7ac366b5 100644 --- a/src/messages/MMonPaxos.h +++ b/src/messages/MMonPaxos.h @@ -21,7 +21,12 @@ #include "include/ceph_features.h" class MMonPaxos : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 3; diff --git a/src/messages/MMonProbe.h b/src/messages/MMonProbe.h index b5380d788344e..6709a26031a28 100644 --- a/src/messages/MMonProbe.h +++ b/src/messages/MMonProbe.h @@ -22,6 +22,11 @@ class MMonProbe : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 6; static const int COMPAT_VERSION = 5; diff --git a/src/messages/MMonQuorumService.h b/src/messages/MMonQuorumService.h index 4b82f83b33502..be09e54b83316 100644 --- a/src/messages/MMonQuorumService.h +++ b/src/messages/MMonQuorumService.h @@ -16,8 +16,13 @@ #include "msg/Message.h" -struct MMonQuorumService : public Message -{ +class MMonQuorumService : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + epoch_t epoch; version_t round; diff --git a/src/messages/MMonScrub.h b/src/messages/MMonScrub.h index 345fbabf17edc..5a7936965a81d 100644 --- a/src/messages/MMonScrub.h +++ b/src/messages/MMonScrub.h @@ -16,8 +16,13 @@ #include "msg/Message.h" #include "mon/mon_types.h" -class MMonScrub : public Message -{ +class MMonScrub : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MMonSubscribe.h b/src/messages/MMonSubscribe.h index 6ccfe46e21e59..32dc5429ceac8 100644 --- a/src/messages/MMonSubscribe.h +++ b/src/messages/MMonSubscribe.h @@ -29,7 +29,12 @@ struct ceph_mon_subscribe_item_old { WRITE_RAW_ENCODER(ceph_mon_subscribe_item_old) -struct MMonSubscribe : public Message { +class MMonSubscribe : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MMonSubscribeAck.h b/src/messages/MMonSubscribeAck.h index 3753ee2977060..35681cb932a15 100644 --- a/src/messages/MMonSubscribeAck.h +++ b/src/messages/MMonSubscribeAck.h @@ -17,7 +17,13 @@ #include "msg/Message.h" -struct MMonSubscribeAck : public Message { +class MMonSubscribeAck : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + __u32 interval; uuid_d fsid; diff --git a/src/messages/MMonSync.h b/src/messages/MMonSync.h index 5b9c9e2c4d189..8e5ae95a2f4ef 100644 --- a/src/messages/MMonSync.h +++ b/src/messages/MMonSync.h @@ -15,8 +15,13 @@ #include "msg/Message.h" -class MMonSync : public Message -{ +class MMonSync : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MNop.h b/src/messages/MNop.h index 61fd5c6edb6b8..f59816d0b67d7 100644 --- a/src/messages/MNop.h +++ b/src/messages/MNop.h @@ -24,6 +24,11 @@ */ class MNop : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDAlive.h b/src/messages/MOSDAlive.h index 5d84b8cd528b2..5e868add1400b 100644 --- a/src/messages/MOSDAlive.h +++ b/src/messages/MOSDAlive.h @@ -20,7 +20,12 @@ #include "messages/PaxosServiceMessage.h" class MOSDAlive : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + epoch_t want = 0; MOSDAlive(epoch_t h, epoch_t w) : PaxosServiceMessage(MSG_OSD_ALIVE, h), want(w) { } diff --git a/src/messages/MOSDBackoff.h b/src/messages/MOSDBackoff.h index a24da39146365..1b2e511629b12 100644 --- a/src/messages/MOSDBackoff.h +++ b/src/messages/MOSDBackoff.h @@ -21,6 +21,11 @@ class MOSDBackoff : public MOSDFastDispatchOp { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static constexpr int HEAD_VERSION = 1; static constexpr int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDBeacon.h b/src/messages/MOSDBeacon.h index 5c9e6762b65f6..ff79842867b26 100644 --- a/src/messages/MOSDBeacon.h +++ b/src/messages/MOSDBeacon.h @@ -5,6 +5,11 @@ class MOSDBeacon : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + std::vector pgs; epoch_t min_last_epoch_clean = 0; diff --git a/src/messages/MOSDBoot.h b/src/messages/MOSDBoot.h index beb6a587f2034..475d889cc0e90 100644 --- a/src/messages/MOSDBoot.h +++ b/src/messages/MOSDBoot.h @@ -21,7 +21,12 @@ #include "osd/osd_types.h" class MOSDBoot : public PaxosServiceMessage { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 6; static const int COMPAT_VERSION = 6; diff --git a/src/messages/MOSDECSubOpRead.h b/src/messages/MOSDECSubOpRead.h index bfb038087bf9f..62215378179f4 100644 --- a/src/messages/MOSDECSubOpRead.h +++ b/src/messages/MOSDECSubOpRead.h @@ -19,6 +19,12 @@ #include "osd/ECMsgTypes.h" class MOSDECSubOpRead : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDECSubOpReadReply.h b/src/messages/MOSDECSubOpReadReply.h index e78f324e35945..6dc46a89219cc 100644 --- a/src/messages/MOSDECSubOpReadReply.h +++ b/src/messages/MOSDECSubOpReadReply.h @@ -19,6 +19,12 @@ #include "osd/ECMsgTypes.h" class MOSDECSubOpReadReply : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDECSubOpWrite.h b/src/messages/MOSDECSubOpWrite.h index 923c45ff1246d..7fc55b62b6eaa 100644 --- a/src/messages/MOSDECSubOpWrite.h +++ b/src/messages/MOSDECSubOpWrite.h @@ -19,6 +19,12 @@ #include "osd/ECMsgTypes.h" class MOSDECSubOpWrite : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDECSubOpWriteReply.h b/src/messages/MOSDECSubOpWriteReply.h index 76d4fca4df9dd..e07dca836cee1 100644 --- a/src/messages/MOSDECSubOpWriteReply.h +++ b/src/messages/MOSDECSubOpWriteReply.h @@ -19,6 +19,12 @@ #include "osd/ECMsgTypes.h" class MOSDECSubOpWriteReply : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDFailure.h b/src/messages/MOSDFailure.h index 244252d947600..37d70af341c67 100644 --- a/src/messages/MOSDFailure.h +++ b/src/messages/MOSDFailure.h @@ -20,7 +20,12 @@ class MOSDFailure : public PaxosServiceMessage { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 4; diff --git a/src/messages/MOSDFastDispatchOp.h b/src/messages/MOSDFastDispatchOp.h index 1eaa2c37f9a3b..3ba555f89292b 100644 --- a/src/messages/MOSDFastDispatchOp.h +++ b/src/messages/MOSDFastDispatchOp.h @@ -9,6 +9,11 @@ class MOSDFastDispatchOp : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + virtual epoch_t get_map_epoch() const = 0; virtual epoch_t get_min_epoch() const { return get_map_epoch(); diff --git a/src/messages/MOSDForceRecovery.h b/src/messages/MOSDForceRecovery.h index 684d2a5875a2b..06e47ea3ce4ab 100644 --- a/src/messages/MOSDForceRecovery.h +++ b/src/messages/MOSDForceRecovery.h @@ -31,7 +31,12 @@ static const int OFR_BACKFILL = 2; // cancel priority boost, requeue if necessary static const int OFR_CANCEL = 4; -struct MOSDForceRecovery : public Message { +class MOSDForceRecovery : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDFull.h b/src/messages/MOSDFull.h index f84a976d602c4..6573aa3101caf 100644 --- a/src/messages/MOSDFull.h +++ b/src/messages/MOSDFull.h @@ -12,7 +12,12 @@ // for now name it for its sole application. class MOSDFull : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + epoch_t map_epoch = 0; uint32_t state = 0; diff --git a/src/messages/MOSDMap.h b/src/messages/MOSDMap.h index fc07660c9c264..f0149650b2871 100644 --- a/src/messages/MOSDMap.h +++ b/src/messages/MOSDMap.h @@ -21,7 +21,12 @@ #include "include/ceph_features.h" class MOSDMap : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 3; diff --git a/src/messages/MOSDMarkMeDown.h b/src/messages/MOSDMarkMeDown.h index 66e29063a87fd..faa360760b095 100644 --- a/src/messages/MOSDMarkMeDown.h +++ b/src/messages/MOSDMarkMeDown.h @@ -18,7 +18,12 @@ #include "messages/PaxosServiceMessage.h" class MOSDMarkMeDown : public PaxosServiceMessage { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 3; diff --git a/src/messages/MOSDOp.h b/src/messages/MOSDOp.h index a1ec292c41731..30e11ceee69bf 100644 --- a/src/messages/MOSDOp.h +++ b/src/messages/MOSDOp.h @@ -32,7 +32,12 @@ class OSD; class MOSDOp : public MOSDFastDispatchOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 8; static const int COMPAT_VERSION = 3; diff --git a/src/messages/MOSDOpReply.h b/src/messages/MOSDOpReply.h index d6f38d8f47db4..b4dc9d8595f8f 100644 --- a/src/messages/MOSDOpReply.h +++ b/src/messages/MOSDOpReply.h @@ -31,7 +31,12 @@ */ class MOSDOpReply : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 8; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDPGBackfill.h b/src/messages/MOSDPGBackfill.h index 108d72caf5557..849a0bc7f1f08 100644 --- a/src/messages/MOSDPGBackfill.h +++ b/src/messages/MOSDPGBackfill.h @@ -18,6 +18,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGBackfill : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 3; public: diff --git a/src/messages/MOSDPGBackfillRemove.h b/src/messages/MOSDPGBackfillRemove.h index 49e9db5900671..0c10e9409dca9 100644 --- a/src/messages/MOSDPGBackfillRemove.h +++ b/src/messages/MOSDPGBackfillRemove.h @@ -21,7 +21,12 @@ * instruct non-primary to remove some objects during backfill */ -struct MOSDPGBackfillRemove : public MOSDFastDispatchOp { +class MOSDPGBackfillRemove : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDPGCreate.h b/src/messages/MOSDPGCreate.h index 9e69b0637e539..7384c4f499ed1 100644 --- a/src/messages/MOSDPGCreate.h +++ b/src/messages/MOSDPGCreate.h @@ -23,7 +23,12 @@ * PGCreate - instruct an OSD to create a pg, if it doesn't already exist */ -struct MOSDPGCreate : public Message { +class MOSDPGCreate : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; const static int HEAD_VERSION = 3; const static int COMPAT_VERSION = 3; diff --git a/src/messages/MOSDPGCreate2.h b/src/messages/MOSDPGCreate2.h index 867a5775f5e30..6b2694b7d11ed 100644 --- a/src/messages/MOSDPGCreate2.h +++ b/src/messages/MOSDPGCreate2.h @@ -10,7 +10,13 @@ * PGCreate2 - instruct an OSD to create some pgs */ -struct MOSDPGCreate2 : public Message { +class MOSDPGCreate2 : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + const static int HEAD_VERSION = 1; const static int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDPGCreated.h b/src/messages/MOSDPGCreated.h index 30110cd5baf61..50ad405efe8a8 100644 --- a/src/messages/MOSDPGCreated.h +++ b/src/messages/MOSDPGCreated.h @@ -8,6 +8,11 @@ class MOSDPGCreated : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + pg_t pgid; MOSDPGCreated() : PaxosServiceMessage(MSG_OSD_PG_CREATED, 0) diff --git a/src/messages/MOSDPGInfo.h b/src/messages/MOSDPGInfo.h index 860a5a4744243..48980ce1941c0 100644 --- a/src/messages/MOSDPGInfo.h +++ b/src/messages/MOSDPGInfo.h @@ -20,6 +20,12 @@ #include "osd/osd_types.h" class MOSDPGInfo : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 5; static const int COMPAT_VERSION = 5; diff --git a/src/messages/MOSDPGLog.h b/src/messages/MOSDPGLog.h index 2ae27f3a5890d..9813db344c945 100644 --- a/src/messages/MOSDPGLog.h +++ b/src/messages/MOSDPGLog.h @@ -19,7 +19,12 @@ #include "messages/MOSDPeeringOp.h" class MOSDPGLog : public MOSDPeeringOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 5; static const int COMPAT_VERSION = 5; diff --git a/src/messages/MOSDPGNotify.h b/src/messages/MOSDPGNotify.h index 936829b1f7797..b5235ff9e2e30 100644 --- a/src/messages/MOSDPGNotify.h +++ b/src/messages/MOSDPGNotify.h @@ -24,7 +24,12 @@ */ class MOSDPGNotify : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 6; static const int COMPAT_VERSION = 6; diff --git a/src/messages/MOSDPGPull.h b/src/messages/MOSDPGPull.h index 82bf8c6eb9d7c..3e3d91321f261 100644 --- a/src/messages/MOSDPGPull.h +++ b/src/messages/MOSDPGPull.h @@ -18,6 +18,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGPull : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDPGPush.h b/src/messages/MOSDPGPush.h index f4a751364819c..1a27bc3915980 100644 --- a/src/messages/MOSDPGPush.h +++ b/src/messages/MOSDPGPush.h @@ -18,6 +18,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGPush : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDPGPushReply.h b/src/messages/MOSDPGPushReply.h index a56783c4baf7f..8b718c622820b 100644 --- a/src/messages/MOSDPGPushReply.h +++ b/src/messages/MOSDPGPushReply.h @@ -18,6 +18,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGPushReply : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDPGQuery.h b/src/messages/MOSDPGQuery.h index 13e5610f833f6..70768a1c72b98 100644 --- a/src/messages/MOSDPGQuery.h +++ b/src/messages/MOSDPGQuery.h @@ -24,6 +24,12 @@ */ class MOSDPGQuery : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 4; diff --git a/src/messages/MOSDPGRecoveryDelete.h b/src/messages/MOSDPGRecoveryDelete.h index 85bd464cdf101..3730cd339941c 100644 --- a/src/messages/MOSDPGRecoveryDelete.h +++ b/src/messages/MOSDPGRecoveryDelete.h @@ -10,7 +10,12 @@ * instruct non-primary to remove some objects during recovery */ -struct MOSDPGRecoveryDelete : public MOSDFastDispatchOp { +class MOSDPGRecoveryDelete : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDPGRecoveryDeleteReply.h b/src/messages/MOSDPGRecoveryDeleteReply.h index eb9624866eafc..ca414bb728247 100644 --- a/src/messages/MOSDPGRecoveryDeleteReply.h +++ b/src/messages/MOSDPGRecoveryDeleteReply.h @@ -6,7 +6,13 @@ #include "MOSDFastDispatchOp.h" -struct MOSDPGRecoveryDeleteReply : public MOSDFastDispatchOp { +class MOSDPGRecoveryDeleteReply : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDPGRemove.h b/src/messages/MOSDPGRemove.h index 979dd27c47b06..278f184b8b536 100644 --- a/src/messages/MOSDPGRemove.h +++ b/src/messages/MOSDPGRemove.h @@ -21,7 +21,12 @@ class MOSDPGRemove : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 3; diff --git a/src/messages/MOSDPGScan.h b/src/messages/MOSDPGScan.h index d921d27ea6c20..50d0a140864bf 100644 --- a/src/messages/MOSDPGScan.h +++ b/src/messages/MOSDPGScan.h @@ -18,7 +18,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGScan : public MOSDFastDispatchOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDPGTemp.h b/src/messages/MOSDPGTemp.h index 80f465e5b62f7..c06f8d0231da7 100644 --- a/src/messages/MOSDPGTemp.h +++ b/src/messages/MOSDPGTemp.h @@ -20,7 +20,12 @@ #include "messages/PaxosServiceMessage.h" class MOSDPGTemp : public PaxosServiceMessage { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + epoch_t map_epoch = 0; map > pg_temp; bool forced = false; diff --git a/src/messages/MOSDPGTrim.h b/src/messages/MOSDPGTrim.h index ad03c1e57281f..106443798d61c 100644 --- a/src/messages/MOSDPGTrim.h +++ b/src/messages/MOSDPGTrim.h @@ -19,7 +19,12 @@ #include "messages/MOSDPeeringOp.h" class MOSDPGTrim : public MOSDPeeringOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDPGUpdateLogMissing.h b/src/messages/MOSDPGUpdateLogMissing.h index 871ec98607da5..91923cff9dcf9 100644 --- a/src/messages/MOSDPGUpdateLogMissing.h +++ b/src/messages/MOSDPGUpdateLogMissing.h @@ -19,7 +19,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGUpdateLogMissing : public MOSDFastDispatchOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDPGUpdateLogMissingReply.h b/src/messages/MOSDPGUpdateLogMissingReply.h index 5c139137b4ae0..a6bdef7a65a82 100644 --- a/src/messages/MOSDPGUpdateLogMissingReply.h +++ b/src/messages/MOSDPGUpdateLogMissingReply.h @@ -19,7 +19,12 @@ #include "MOSDFastDispatchOp.h" class MOSDPGUpdateLogMissingReply : public MOSDFastDispatchOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDPeeringOp.h b/src/messages/MOSDPeeringOp.h index 338d4214164ef..f1c2a60db55ff 100644 --- a/src/messages/MOSDPeeringOp.h +++ b/src/messages/MOSDPeeringOp.h @@ -9,6 +9,11 @@ class MOSDPeeringOp : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + MOSDPeeringOp(int t, int version, int compat_version) : Message(t, version, compat_version) {} diff --git a/src/messages/MOSDPing.h b/src/messages/MOSDPing.h index 93670beaaa7f0..3fd98fe40ee93 100644 --- a/src/messages/MOSDPing.h +++ b/src/messages/MOSDPing.h @@ -33,7 +33,12 @@ class MOSDPing : public Message { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 4; diff --git a/src/messages/MOSDRepOp.h b/src/messages/MOSDRepOp.h index 70ba7a5b479ee..6c26aadf30234 100644 --- a/src/messages/MOSDRepOp.h +++ b/src/messages/MOSDRepOp.h @@ -23,7 +23,12 @@ */ class MOSDRepOp : public MOSDFastDispatchOp { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDRepOpReply.h b/src/messages/MOSDRepOpReply.h index 13fedb174fed1..d8eea14719539 100644 --- a/src/messages/MOSDRepOpReply.h +++ b/src/messages/MOSDRepOpReply.h @@ -29,6 +29,12 @@ */ class MOSDRepOpReply : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; public: diff --git a/src/messages/MOSDRepScrub.h b/src/messages/MOSDRepScrub.h index 877f0185ed0ad..1610fd1086629 100644 --- a/src/messages/MOSDRepScrub.h +++ b/src/messages/MOSDRepScrub.h @@ -22,7 +22,12 @@ * instruct an OSD initiate a replica scrub on a specific PG */ -struct MOSDRepScrub : public MOSDFastDispatchOp { +class MOSDRepScrub : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 9; static const int COMPAT_VERSION = 6; diff --git a/src/messages/MOSDRepScrubMap.h b/src/messages/MOSDRepScrubMap.h index 522f01e38915f..b32717808ed42 100644 --- a/src/messages/MOSDRepScrubMap.h +++ b/src/messages/MOSDRepScrubMap.h @@ -21,7 +21,12 @@ * pass a ScrubMap from a shard back to the primary */ -struct MOSDRepScrubMap : public MOSDFastDispatchOp { +class MOSDRepScrubMap : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDScrub.h b/src/messages/MOSDScrub.h index bee348f3903ab..a487dd1700e77 100644 --- a/src/messages/MOSDScrub.h +++ b/src/messages/MOSDScrub.h @@ -22,7 +22,12 @@ * instruct an OSD to scrub some or all pg(s) */ -struct MOSDScrub : public Message { +class MOSDScrub : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MOSDScrub2.h b/src/messages/MOSDScrub2.h index 20b54a83baaec..96ec1ae622d50 100644 --- a/src/messages/MOSDScrub2.h +++ b/src/messages/MOSDScrub2.h @@ -9,7 +9,12 @@ * instruct an OSD to scrub some or all pg(s) */ -struct MOSDScrub2 : public Message { +class MOSDScrub2 : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MOSDScrubReserve.h b/src/messages/MOSDScrubReserve.h index 8293141333a67..94d7164307523 100644 --- a/src/messages/MOSDScrubReserve.h +++ b/src/messages/MOSDScrubReserve.h @@ -18,6 +18,12 @@ #include "MOSDFastDispatchOp.h" class MOSDScrubReserve : public MOSDFastDispatchOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; public: diff --git a/src/messages/MPGStats.h b/src/messages/MPGStats.h index 723d764c263d5..7c49156db3854 100644 --- a/src/messages/MPGStats.h +++ b/src/messages/MPGStats.h @@ -20,6 +20,11 @@ class MPGStats : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; map pg_stat; osd_stat_t osd_stat; diff --git a/src/messages/MPGStatsAck.h b/src/messages/MPGStatsAck.h index d7336c307434c..2080e31109f18 100644 --- a/src/messages/MPGStatsAck.h +++ b/src/messages/MPGStatsAck.h @@ -19,6 +19,11 @@ class MPGStatsAck : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + map > pg_stat; MPGStatsAck() : Message(MSG_PGSTATSACK) {} diff --git a/src/messages/MPing.h b/src/messages/MPing.h index ce11edaf76964..88fedb29a185e 100644 --- a/src/messages/MPing.h +++ b/src/messages/MPing.h @@ -19,7 +19,12 @@ #include "msg/Message.h" class MPing : public Message { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + MPing() : Message(CEPH_MSG_PING) {} private: ~MPing() override {} diff --git a/src/messages/MPoolOp.h b/src/messages/MPoolOp.h index 508218de665b2..8ad344ef559d8 100644 --- a/src/messages/MPoolOp.h +++ b/src/messages/MPoolOp.h @@ -19,7 +19,12 @@ class MPoolOp : public PaxosServiceMessage { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 4; static const int COMPAT_VERSION = 2; diff --git a/src/messages/MPoolOpReply.h b/src/messages/MPoolOpReply.h index c5fe917627a53..13b13684cabdc 100644 --- a/src/messages/MPoolOpReply.h +++ b/src/messages/MPoolOpReply.h @@ -19,6 +19,11 @@ class MPoolOpReply : public PaxosServiceMessage { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + uuid_d fsid; __u32 replyCode = 0; epoch_t epoch = 0; diff --git a/src/messages/MRecoveryReserve.h b/src/messages/MRecoveryReserve.h index 9803094357b7b..a0eb2a5e33d15 100644 --- a/src/messages/MRecoveryReserve.h +++ b/src/messages/MRecoveryReserve.h @@ -19,6 +19,12 @@ #include "messages/MOSDPeeringOp.h" class MRecoveryReserve : public MOSDPeeringOp { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 2; public: diff --git a/src/messages/MRemoveSnaps.h b/src/messages/MRemoveSnaps.h index 8ecc8d940ddfd..332b5c9f48e3d 100644 --- a/src/messages/MRemoveSnaps.h +++ b/src/messages/MRemoveSnaps.h @@ -17,7 +17,13 @@ #include "messages/PaxosServiceMessage.h" -struct MRemoveSnaps : public PaxosServiceMessage { +class MRemoveSnaps : public PaxosServiceMessage { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + map > snaps; MRemoveSnaps() : diff --git a/src/messages/MRoute.h b/src/messages/MRoute.h index 7df923e13b8fb..74228cfbb66e3 100644 --- a/src/messages/MRoute.h +++ b/src/messages/MRoute.h @@ -20,7 +20,12 @@ #include "msg/Message.h" #include "include/encoding.h" -struct MRoute : public Message { +class MRoute : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 3; diff --git a/src/messages/MServiceMap.h b/src/messages/MServiceMap.h index b1022b4a3c39d..084044c3862f4 100644 --- a/src/messages/MServiceMap.h +++ b/src/messages/MServiceMap.h @@ -8,6 +8,11 @@ class MServiceMap : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + ServiceMap service_map; MServiceMap() : Message(MSG_SERVICE_MAP) { } diff --git a/src/messages/MStatfs.h b/src/messages/MStatfs.h index edb9a11d7ab12..392c931242b96 100644 --- a/src/messages/MStatfs.h +++ b/src/messages/MStatfs.h @@ -20,7 +20,12 @@ #include "messages/PaxosServiceMessage.h" class MStatfs : public PaxosServiceMessage { - +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 2; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MStatfsReply.h b/src/messages/MStatfsReply.h index a5b3ac0a4b051..b925b31afdfa2 100644 --- a/src/messages/MStatfsReply.h +++ b/src/messages/MStatfsReply.h @@ -18,6 +18,11 @@ class MStatfsReply : public Message { public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + struct ceph_mon_statfs_reply h{}; MStatfsReply() : Message(CEPH_MSG_STATFS_REPLY) {} diff --git a/src/messages/MTimeCheck.h b/src/messages/MTimeCheck.h index 911aba0d9b5d7..b8a7b75e145a8 100644 --- a/src/messages/MTimeCheck.h +++ b/src/messages/MTimeCheck.h @@ -15,8 +15,13 @@ #ifndef CEPH_MTIMECHECK_H #define CEPH_MTIMECHECK_H -struct MTimeCheck : public Message -{ +class MTimeCheck : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; enum { diff --git a/src/messages/MTimeCheck2.h b/src/messages/MTimeCheck2.h index ea4f66ec8878a..bda6aef9cb938 100644 --- a/src/messages/MTimeCheck2.h +++ b/src/messages/MTimeCheck2.h @@ -14,8 +14,13 @@ #pragma once -struct MTimeCheck2 : public Message -{ +class MTimeCheck2 : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + static const int HEAD_VERSION = 1; static const int COMPAT_VERSION = 1; diff --git a/src/messages/MWatchNotify.h b/src/messages/MWatchNotify.h index cd01177a5f044..e0ace85c50e3e 100644 --- a/src/messages/MWatchNotify.h +++ b/src/messages/MWatchNotify.h @@ -20,6 +20,12 @@ class MWatchNotify : public Message { +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; +private: static const int HEAD_VERSION = 3; static const int COMPAT_VERSION = 1; diff --git a/src/messages/PaxosServiceMessage.h b/src/messages/PaxosServiceMessage.h index a13dc938e8a3e..d902e445e525c 100644 --- a/src/messages/PaxosServiceMessage.h +++ b/src/messages/PaxosServiceMessage.h @@ -5,7 +5,12 @@ #include "mon/Session.h" class PaxosServiceMessage : public Message { - public: +public: + typedef boost::intrusive_ptr ref; + typedef boost::intrusive_ptr const_ref; + using factory = MessageFactory; + friend factory; + version_t version; __s16 deprecated_session_mon; uint64_t deprecated_session_mon_tid; diff --git a/src/msg/Message.cc b/src/msg/Message.cc index a360089d20998..60c93aaa5367c 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -328,509 +328,509 @@ Message *decode_message(CephContext *cct, int crcflags, } // make message - Message *m = 0; + Message::ref m; int type = header.type; switch (type) { // -- with payload -- case MSG_PGSTATS: - m = new MPGStats; + m = MPGStats::factory::build(); break; case MSG_PGSTATSACK: - m = new MPGStatsAck; + m = MPGStatsAck::factory::build(); break; case CEPH_MSG_STATFS: - m = new MStatfs; + m = MStatfs::factory::build(); break; case CEPH_MSG_STATFS_REPLY: - m = new MStatfsReply; + m = MStatfsReply::factory::build(); break; case MSG_GETPOOLSTATS: - m = new MGetPoolStats; + m = MGetPoolStats::factory::build(); break; case MSG_GETPOOLSTATSREPLY: - m = new MGetPoolStatsReply; + m = MGetPoolStatsReply::factory::build(); break; case CEPH_MSG_POOLOP: - m = new MPoolOp; + m = MPoolOp::factory::build(); break; case CEPH_MSG_POOLOP_REPLY: - m = new MPoolOpReply; + m = MPoolOpReply::factory::build(); break; case MSG_MON_COMMAND: - m = new MMonCommand; + m = MMonCommand::factory::build(); break; case MSG_MON_COMMAND_ACK: - m = new MMonCommandAck; + m = MMonCommandAck::factory::build(); break; case MSG_MON_PAXOS: - m = new MMonPaxos; + m = MMonPaxos::factory::build(); break; case MSG_CONFIG: - m = new MConfig; + m = MConfig::factory::build(); break; case MSG_GET_CONFIG: - m = new MGetConfig; + m = MGetConfig::factory::build(); break; case MSG_MON_PROBE: - m = new MMonProbe; + m = MMonProbe::factory::build(); break; case MSG_MON_JOIN: - m = new MMonJoin; + m = MMonJoin::factory::build(); break; case MSG_MON_ELECTION: - m = new MMonElection; + m = MMonElection::factory::build(); break; case MSG_MON_SYNC: - m = new MMonSync; + m = MMonSync::factory::build(); break; case MSG_MON_SCRUB: - m = new MMonScrub; + m = MMonScrub::factory::build(); break; case MSG_LOG: - m = new MLog; + m = MLog::factory::build(); break; case MSG_LOGACK: - m = new MLogAck; + m = MLogAck::factory::build(); break; case CEPH_MSG_PING: - m = new MPing(); + m = MPing::factory::build(); break; case MSG_COMMAND: - m = new MCommand; + m = MCommand::factory::build(); break; case MSG_COMMAND_REPLY: - m = new MCommandReply; + m = MCommandReply::factory::build(); break; case MSG_OSD_BACKFILL_RESERVE: - m = new MBackfillReserve; + m = MBackfillReserve::factory::build(); break; case MSG_OSD_RECOVERY_RESERVE: - m = new MRecoveryReserve; + m = MRecoveryReserve::factory::build(); break; case MSG_OSD_FORCE_RECOVERY: - m = new MOSDForceRecovery; + m = MOSDForceRecovery::factory::build(); break; case MSG_ROUTE: - m = new MRoute; + m = MRoute::factory::build(); break; case MSG_FORWARD: - m = new MForward; + m = MForward::factory::build(); break; case CEPH_MSG_MON_MAP: - m = new MMonMap; + m = MMonMap::factory::build(); break; case CEPH_MSG_MON_GET_MAP: - m = new MMonGetMap; + m = MMonGetMap::factory::build(); break; case CEPH_MSG_MON_GET_OSDMAP: - m = new MMonGetOSDMap; + m = MMonGetOSDMap::factory::build(); break; case CEPH_MSG_MON_GET_VERSION: - m = new MMonGetVersion(); + m = MMonGetVersion::factory::build(); break; case CEPH_MSG_MON_GET_VERSION_REPLY: - m = new MMonGetVersionReply(); + m = MMonGetVersionReply::factory::build(); break; case CEPH_MSG_MON_METADATA: - m = new MMonMetadata(); + m = MMonMetadata::factory::build(); break; case MSG_OSD_BOOT: - m = new MOSDBoot(); + m = MOSDBoot::factory::build(); break; case MSG_OSD_ALIVE: - m = new MOSDAlive(); + m = MOSDAlive::factory::build(); break; case MSG_OSD_BEACON: - m = new MOSDBeacon(); + m = MOSDBeacon::factory::build(); break; case MSG_OSD_PGTEMP: - m = new MOSDPGTemp; + m = MOSDPGTemp::factory::build(); break; case MSG_OSD_FAILURE: - m = new MOSDFailure(); + m = MOSDFailure::factory::build(); break; case MSG_OSD_MARK_ME_DOWN: - m = new MOSDMarkMeDown(); + m = MOSDMarkMeDown::factory::build(); break; case MSG_OSD_FULL: - m = new MOSDFull(); + m = MOSDFull::factory::build(); break; case MSG_OSD_PING: - m = new MOSDPing(); + m = MOSDPing::factory::build(); break; case CEPH_MSG_OSD_OP: - m = new MOSDOp(); + m = MOSDOp::factory::build(); break; case CEPH_MSG_OSD_OPREPLY: - m = new MOSDOpReply(); + m = MOSDOpReply::factory::build(); break; case MSG_OSD_REPOP: - m = new MOSDRepOp(); + m = MOSDRepOp::factory::build(); break; case MSG_OSD_REPOPREPLY: - m = new MOSDRepOpReply(); + m = MOSDRepOpReply::factory::build(); break; case MSG_OSD_PG_CREATED: - m = new MOSDPGCreated(); + m = MOSDPGCreated::factory::build(); break; case MSG_OSD_PG_UPDATE_LOG_MISSING: - m = new MOSDPGUpdateLogMissing(); + m = MOSDPGUpdateLogMissing::factory::build(); break; case MSG_OSD_PG_UPDATE_LOG_MISSING_REPLY: - m = new MOSDPGUpdateLogMissingReply(); + m = MOSDPGUpdateLogMissingReply::factory::build(); break; case CEPH_MSG_OSD_BACKOFF: - m = new MOSDBackoff; + m = MOSDBackoff::factory::build(); break; case CEPH_MSG_OSD_MAP: - m = new MOSDMap; + m = MOSDMap::factory::build(); break; case CEPH_MSG_WATCH_NOTIFY: - m = new MWatchNotify; + m = MWatchNotify::factory::build(); break; case MSG_OSD_PG_NOTIFY: - m = new MOSDPGNotify; + m = MOSDPGNotify::factory::build(); break; case MSG_OSD_PG_QUERY: - m = new MOSDPGQuery; + m = MOSDPGQuery::factory::build(); break; case MSG_OSD_PG_LOG: - m = new MOSDPGLog; + m = MOSDPGLog::factory::build(); break; case MSG_OSD_PG_REMOVE: - m = new MOSDPGRemove; + m = MOSDPGRemove::factory::build(); break; case MSG_OSD_PG_INFO: - m = new MOSDPGInfo; + m = MOSDPGInfo::factory::build(); break; case MSG_OSD_PG_CREATE: - m = new MOSDPGCreate; + m = MOSDPGCreate::factory::build(); break; case MSG_OSD_PG_CREATE2: - m = new MOSDPGCreate2; + m = MOSDPGCreate2::factory::build(); break; case MSG_OSD_PG_TRIM: - m = new MOSDPGTrim; + m = MOSDPGTrim::factory::build(); break; case MSG_OSD_SCRUB: - m = new MOSDScrub; + m = MOSDScrub::factory::build(); break; case MSG_OSD_SCRUB2: - m = new MOSDScrub2; + m = MOSDScrub2::factory::build(); break; case MSG_OSD_SCRUB_RESERVE: - m = new MOSDScrubReserve; + m = MOSDScrubReserve::factory::build(); break; case MSG_REMOVE_SNAPS: - m = new MRemoveSnaps; + m = MRemoveSnaps::factory::build(); break; case MSG_OSD_REP_SCRUB: - m = new MOSDRepScrub; + m = MOSDRepScrub::factory::build(); break; case MSG_OSD_REP_SCRUBMAP: - m = new MOSDRepScrubMap; + m = MOSDRepScrubMap::factory::build(); break; case MSG_OSD_PG_SCAN: - m = new MOSDPGScan; + m = MOSDPGScan::factory::build(); break; case MSG_OSD_PG_BACKFILL: - m = new MOSDPGBackfill; + m = MOSDPGBackfill::factory::build(); break; case MSG_OSD_PG_BACKFILL_REMOVE: - m = new MOSDPGBackfillRemove; + m = MOSDPGBackfillRemove::factory::build(); break; case MSG_OSD_PG_PUSH: - m = new MOSDPGPush; + m = MOSDPGPush::factory::build(); break; case MSG_OSD_PG_PULL: - m = new MOSDPGPull; + m = MOSDPGPull::factory::build(); break; case MSG_OSD_PG_PUSH_REPLY: - m = new MOSDPGPushReply; + m = MOSDPGPushReply::factory::build(); break; case MSG_OSD_PG_RECOVERY_DELETE: - m = new MOSDPGRecoveryDelete; + m = MOSDPGRecoveryDelete::factory::build(); break; case MSG_OSD_PG_RECOVERY_DELETE_REPLY: - m = new MOSDPGRecoveryDeleteReply; + m = MOSDPGRecoveryDeleteReply::factory::build(); break; case MSG_OSD_EC_WRITE: - m = new MOSDECSubOpWrite; + m = MOSDECSubOpWrite::factory::build(); break; case MSG_OSD_EC_WRITE_REPLY: - m = new MOSDECSubOpWriteReply; + m = MOSDECSubOpWriteReply::factory::build(); break; case MSG_OSD_EC_READ: - m = new MOSDECSubOpRead; + m = MOSDECSubOpRead::factory::build(); break; case MSG_OSD_EC_READ_REPLY: - m = new MOSDECSubOpReadReply; + m = MOSDECSubOpReadReply::factory::build(); break; // auth case CEPH_MSG_AUTH: - m = new MAuth; + m = MAuth::factory::build(); break; case CEPH_MSG_AUTH_REPLY: - m = new MAuthReply; + m = MAuthReply::factory::build(); break; case MSG_MON_GLOBAL_ID: - m = new MMonGlobalID; + m = MMonGlobalID::factory::build(); break; // clients case CEPH_MSG_MON_SUBSCRIBE: - m = new MMonSubscribe; + m = MMonSubscribe::factory::build(); break; case CEPH_MSG_MON_SUBSCRIBE_ACK: - m = new MMonSubscribeAck; + m = MMonSubscribeAck::factory::build(); break; case CEPH_MSG_CLIENT_SESSION: - m = new MClientSession; + m = MClientSession::factory::build(); break; case CEPH_MSG_CLIENT_RECONNECT: - m = new MClientReconnect; + m = MClientReconnect::factory::build(); break; case CEPH_MSG_CLIENT_REQUEST: - m = new MClientRequest; + m = MClientRequest::factory::build(); break; case CEPH_MSG_CLIENT_REQUEST_FORWARD: - m = new MClientRequestForward; + m = MClientRequestForward::factory::build(); break; case CEPH_MSG_CLIENT_REPLY: - m = new MClientReply; + m = MClientReply::factory::build(); break; case CEPH_MSG_CLIENT_CAPS: - m = new MClientCaps; + m = MClientCaps::factory::build(); break; case CEPH_MSG_CLIENT_CAPRELEASE: - m = new MClientCapRelease; + m = MClientCapRelease::factory::build(); break; case CEPH_MSG_CLIENT_LEASE: - m = new MClientLease; + m = MClientLease::factory::build(); break; case CEPH_MSG_CLIENT_SNAP: - m = new MClientSnap; + m = MClientSnap::factory::build(); break; case CEPH_MSG_CLIENT_QUOTA: - m = new MClientQuota; + m = MClientQuota::factory::build(); break; // mds case MSG_MDS_SLAVE_REQUEST: - m = new MMDSSlaveRequest; + m = MMDSSlaveRequest::factory::build(); break; case CEPH_MSG_MDS_MAP: - m = new MMDSMap; + m = MMDSMap::factory::build(); break; case CEPH_MSG_FS_MAP: - m = new MFSMap; + m = MFSMap::factory::build(); break; case CEPH_MSG_FS_MAP_USER: - m = new MFSMapUser; + m = MFSMapUser::factory::build(); break; case MSG_MDS_BEACON: - m = new MMDSBeacon; + m = MMDSBeacon::factory::build(); break; case MSG_MDS_OFFLOAD_TARGETS: - m = new MMDSLoadTargets; + m = MMDSLoadTargets::factory::build(); break; case MSG_MDS_RESOLVE: - m = new MMDSResolve; + m = MMDSResolve::factory::build(); break; case MSG_MDS_RESOLVEACK: - m = new MMDSResolveAck; + m = MMDSResolveAck::factory::build(); break; case MSG_MDS_CACHEREJOIN: - m = new MMDSCacheRejoin; + m = MMDSCacheRejoin::factory::build(); break; case MSG_MDS_DIRUPDATE: - m = new MDirUpdate(); + m = MDirUpdate::factory::build(); break; case MSG_MDS_DISCOVER: - m = new MDiscover(); + m = MDiscover::factory::build(); break; case MSG_MDS_DISCOVERREPLY: - m = new MDiscoverReply(); + m = MDiscoverReply::factory::build(); break; case MSG_MDS_FINDINO: - m = new MMDSFindIno; + m = MMDSFindIno::factory::build(); break; case MSG_MDS_FINDINOREPLY: - m = new MMDSFindInoReply; + m = MMDSFindInoReply::factory::build(); break; case MSG_MDS_OPENINO: - m = new MMDSOpenIno; + m = MMDSOpenIno::factory::build(); break; case MSG_MDS_OPENINOREPLY: - m = new MMDSOpenInoReply; + m = MMDSOpenInoReply::factory::build(); break; case MSG_MDS_SNAPUPDATE: - m = new MMDSSnapUpdate(); + m = MMDSSnapUpdate::factory::build(); break; case MSG_MDS_FRAGMENTNOTIFY: - m = new MMDSFragmentNotify; + m = MMDSFragmentNotify::factory::build(); break; case MSG_MDS_EXPORTDIRDISCOVER: - m = new MExportDirDiscover(); + m = MExportDirDiscover::factory::build(); break; case MSG_MDS_EXPORTDIRDISCOVERACK: - m = new MExportDirDiscoverAck(); + m = MExportDirDiscoverAck::factory::build(); break; case MSG_MDS_EXPORTDIRCANCEL: - m = new MExportDirCancel(); + m = MExportDirCancel::factory::build(); break; case MSG_MDS_EXPORTDIR: - m = new MExportDir; + m = MExportDir::factory::build(); break; case MSG_MDS_EXPORTDIRACK: - m = new MExportDirAck; + m = MExportDirAck::factory::build(); break; case MSG_MDS_EXPORTDIRFINISH: - m = new MExportDirFinish; + m = MExportDirFinish::factory::build(); break; case MSG_MDS_EXPORTDIRNOTIFY: - m = new MExportDirNotify(); + m = MExportDirNotify::factory::build(); break; case MSG_MDS_EXPORTDIRNOTIFYACK: - m = new MExportDirNotifyAck(); + m = MExportDirNotifyAck::factory::build(); break; case MSG_MDS_EXPORTDIRPREP: - m = new MExportDirPrep(); + m = MExportDirPrep::factory::build(); break; case MSG_MDS_EXPORTDIRPREPACK: - m = new MExportDirPrepAck(); + m = MExportDirPrepAck::factory::build(); break; case MSG_MDS_EXPORTCAPS: - m = new MExportCaps; + m = MExportCaps::factory::build(); break; case MSG_MDS_EXPORTCAPSACK: - m = new MExportCapsAck; + m = MExportCapsAck::factory::build(); break; case MSG_MDS_GATHERCAPS: - m = new MGatherCaps; + m = MGatherCaps::factory::build(); break; case MSG_MDS_DENTRYUNLINK: - m = new MDentryUnlink; + m = MDentryUnlink::factory::build(); break; case MSG_MDS_DENTRYLINK: - m = new MDentryLink; + m = MDentryLink::factory::build(); break; case MSG_MDS_HEARTBEAT: - m = new MHeartbeat(); + m = MHeartbeat::factory::build(); break; case MSG_MDS_CACHEEXPIRE: - m = new MCacheExpire(); + m = MCacheExpire::factory::build(); break; case MSG_MDS_TABLE_REQUEST: - m = new MMDSTableRequest; + m = MMDSTableRequest::factory::build(); break; /* case MSG_MDS_INODEUPDATE: - m = new MInodeUpdate(); + m = MInodeUpdate::factory::build(); break; */ case MSG_MDS_INODEFILECAPS: - m = new MInodeFileCaps(); + m = MInodeFileCaps::factory::build(); break; case MSG_MDS_LOCK: - m = new MLock(); + m = MLock::factory::build(); break; case MSG_MGR_BEACON: - m = new MMgrBeacon(); + m = MMgrBeacon::factory::build(); break; case MSG_MON_MGR_REPORT: - m = new MMonMgrReport(); + m = MMonMgrReport::factory::build(); break; case MSG_SERVICE_MAP: - m = new MServiceMap(); + m = MServiceMap::factory::build(); break; case MSG_MGR_MAP: - m = new MMgrMap(); + m = MMgrMap::factory::build(); break; case MSG_MGR_DIGEST: - m = new MMgrDigest(); + m = MMgrDigest::factory::build(); break; case MSG_MGR_OPEN: - m = new MMgrOpen(); + m = MMgrOpen::factory::build(); break; case MSG_MGR_CLOSE: - m = new MMgrClose(); + m = MMgrClose::factory::build(); break; case MSG_MGR_REPORT: - m = new MMgrReport(); + m = MMgrReport::factory::build(); break; case MSG_MGR_CONFIGURE: - m = new MMgrConfigure(); + m = MMgrConfigure::factory::build(); break; case MSG_TIMECHECK: - m = new MTimeCheck(); + m = MTimeCheck::factory::build(); break; case MSG_TIMECHECK2: - m = new MTimeCheck2(); + m = MTimeCheck2::factory::build(); break; case MSG_MON_HEALTH: - m = new MMonHealth(); + m = MMonHealth::factory::build(); break; case MSG_MON_HEALTH_CHECKS: - m = new MMonHealthChecks(); + m = MMonHealthChecks::factory::build(); break; #if defined(HAVE_XIO) case MSG_DATA_PING: - m = new MDataPing(); + m = MDataPing::factory::build(); break; #endif // -- simple messages without payload -- case CEPH_MSG_SHUTDOWN: - m = new MGenericMessage(type); + m = MGenericMessage::factory::build(type); break; default: @@ -857,7 +857,6 @@ Message *decode_message(CephContext *cct, int crcflags, if (cct->_conf->ms_die_on_bad_msg) ceph_abort(); } - m->put(); return 0; } @@ -883,12 +882,11 @@ Message *decode_message(CephContext *cct, int crcflags, if (cct->_conf->ms_die_on_bad_msg) ceph_abort(); } - m->put(); return 0; } // done! - return m; + return m.detach(); } void Message::encode_trace(bufferlist &bl, uint64_t features) const diff --git a/src/msg/Message.h b/src/msg/Message.h index 796dbc456a3e8..6ffc1f2045a95 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -519,4 +519,13 @@ extern void encode_message(Message *m, uint64_t features, bufferlist& bl); extern Message *decode_message(CephContext *cct, int crcflags, bufferlist::const_iterator& bl); +template +class MessageFactory { +public: +template + static typename MessageType::ref build(Args&&... args) { + return typename MessageType::ref(new MessageType(std::forward(args)...), false); + } +}; + #endif diff --git a/src/tools/ceph-dencoder/ceph_dencoder.cc b/src/tools/ceph-dencoder/ceph_dencoder.cc index f8b8fe39994f1..e069f1fdde630 100644 --- a/src/tools/ceph-dencoder/ceph_dencoder.cc +++ b/src/tools/ceph-dencoder/ceph_dencoder.cc @@ -214,22 +214,18 @@ public: template class MessageDencoderImpl : public Dencoder { - T *m_object; - list m_list; + typename T::ref m_object; + list m_list; public: - MessageDencoderImpl() { - m_object = new T; - } - ~MessageDencoderImpl() override { - m_object->put(); - } + MessageDencoderImpl() : m_object(T::factory::build()) {} + ~MessageDencoderImpl() override {} string decode(bufferlist bl, uint64_t seek) override { auto p = bl.cbegin(); p.seek(seek); try { - Message *n = decode_message(g_ceph_context, 0, p); + Message::ref n(decode_message(g_ceph_context, 0, p), false); if (!n) throw std::runtime_error("failed to decode"); if (n->get_type() != m_object->get_type()) { @@ -237,8 +233,7 @@ public: ss << "decoded type " << n->get_type() << " instead of expected " << m_object->get_type(); throw std::runtime_error(ss.str()); } - m_object->put(); - m_object = static_cast(n); + m_object = boost::static_pointer_cast::type::element_type>(n); } catch (buffer::error& e) { return e.what(); @@ -253,7 +248,7 @@ public: void encode(bufferlist& out, uint64_t features) override { out.clear(); - encode_message(m_object, features, out); + encode_message(m_object.get(), features, out); } void dump(ceph::Formatter *f) override { @@ -271,7 +266,6 @@ public: i = m_list.size(); if ((i == 0) || (i > m_list.size())) return "invalid id for generated object"; - m_object->put(); m_object = *(std::next(m_list.begin(), i-1)); return string(); } diff --git a/src/tools/ceph-dencoder/types.h b/src/tools/ceph-dencoder/types.h index 2542c6bb21b2a..255c23f00d6d9 100644 --- a/src/tools/ceph-dencoder/types.h +++ b/src/tools/ceph-dencoder/types.h @@ -867,6 +867,3 @@ MESSAGE(MTimeCheck2) #include "messages/MWatchNotify.h" MESSAGE(MWatchNotify) - -#include "messages/PaxosServiceMessage.h" -MESSAGE(PaxosServiceMessage) -- 2.39.5