#include <string_view>
-#include "msg/Message.h"
+#include "messages/MMDSOp.h"
-class MDentryLink : public SafeMessage {
+class MDentryLink final : public MMDSOp {
private:
- static const int HEAD_VERSION = 1;
- static const int COMPAT_VERSION = 1;
+ static constexpr int HEAD_VERSION = 1;
+ static constexpr int COMPAT_VERSION = 1;
dirfrag_t subtree;
dirfrag_t dirfrag;
- string dn;
+ std::string dn;
bool is_primary = false;
public:
dirfrag_t get_subtree() const { return subtree; }
dirfrag_t get_dirfrag() const { return dirfrag; }
- const string& get_dn() const { return dn; }
+ const std::string& get_dn() const { return dn; }
bool get_is_primary() const { return is_primary; }
- bufferlist bl;
+ ceph::buffer::list bl;
protected:
MDentryLink() :
- SafeMessage(MSG_MDS_DENTRYLINK, HEAD_VERSION, COMPAT_VERSION) { }
+ MMDSOp(MSG_MDS_DENTRYLINK, HEAD_VERSION, COMPAT_VERSION) { }
MDentryLink(dirfrag_t r, dirfrag_t df, std::string_view n, bool p) :
- SafeMessage(MSG_MDS_DENTRYLINK, HEAD_VERSION, COMPAT_VERSION),
+ MMDSOp(MSG_MDS_DENTRYLINK, HEAD_VERSION, COMPAT_VERSION),
subtree(r),
dirfrag(df),
dn(n),
is_primary(p) {}
- ~MDentryLink() override {}
+ ~MDentryLink() final {}
public:
std::string_view get_type_name() const override { return "dentry_link";}
- void print(ostream& o) const override {
+ void print(std::ostream& o) const override {
o << "dentry_link(" << dirfrag << " " << dn << ")";
}
void decode_payload() override {
+ using ceph::decode;
auto p = payload.cbegin();
decode(subtree, p);
decode(dirfrag, p);