#include "msg/Message.h"
#include "include/types.h"
-class MExportDirDiscoverAck : public MessageInstance<MExportDirDiscoverAck> {
-public:
- friend factory;
+class MExportDirDiscoverAck : public SafeMessage {
private:
+ static const int HEAD_VERSION = 1;
+ static const int COMPAT_VERSION = 1;
+
dirfrag_t dirfrag;
bool success;
bool is_success() const { return success; }
protected:
- MExportDirDiscoverAck() : MessageInstance(MSG_MDS_EXPORTDIRDISCOVERACK) {}
+ MExportDirDiscoverAck() : SafeMessage{MSG_MDS_EXPORTDIRDISCOVERACK, HEAD_VERSION, COMPAT_VERSION} {}
MExportDirDiscoverAck(dirfrag_t df, uint64_t tid, bool s=true) :
- MessageInstance(MSG_MDS_EXPORTDIRDISCOVERACK),
+ SafeMessage{MSG_MDS_EXPORTDIRDISCOVERACK, HEAD_VERSION, COMPAT_VERSION},
dirfrag(df), success(s) {
set_tid(tid);
}
encode(dirfrag, payload);
encode(success, payload);
}
+private:
+ template<class T, typename... Args>
+ friend boost::intrusive_ptr<T> ceph::make_message(Args&&... args);
};
#endif