From 72c7bcd524b96737548995e4142e183d195e1af8 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 25 Sep 2012 10:51:04 -0700 Subject: [PATCH] mds: MDSCacheObjectInfo now uses modern encoding Signed-off-by: Sage Weil --- src/mds/mdstypes.cc | 47 +++++++++++++++++++++++++++++++++++++++ src/mds/mdstypes.h | 20 ++++------------- src/test/encoding/types.h | 1 + 3 files changed, 52 insertions(+), 16 deletions(-) diff --git a/src/mds/mdstypes.cc b/src/mds/mdstypes.cc index 02d7946db7210..6f6f9aa19c43c 100644 --- a/src/mds/mdstypes.cc +++ b/src/mds/mdstypes.cc @@ -613,3 +613,50 @@ void string_snap_t::generate_test_instances(list& ls) ls.back()->name = "bar"; ls.back()->snapid = 456; } + + +/* + * MDSCacheObjectInfo + */ +void MDSCacheObjectInfo::encode(bufferlist& bl) const +{ + ENCODE_START(2, 2, bl); + ::encode(ino, bl); + ::encode(dirfrag, bl); + ::encode(dname, bl); + ::encode(snapid, bl); + ENCODE_FINISH(bl); +} + +void MDSCacheObjectInfo::decode(bufferlist::iterator& p) +{ + DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, p); + ::decode(ino, p); + ::decode(dirfrag, p); + ::decode(dname, p); + ::decode(snapid, p); + DECODE_FINISH(p); +} + +void MDSCacheObjectInfo::dump(Formatter *f) const +{ + f->dump_unsigned("ino", ino); + f->dump_stream("dirfrag") << dirfrag; + f->dump_string("name", dname); + f->dump_unsigned("snapid", snapid); +} + +void MDSCacheObjectInfo::generate_test_instances(list& ls) +{ + ls.push_back(new MDSCacheObjectInfo); + ls.push_back(new MDSCacheObjectInfo); + ls.back()->ino = 1; + ls.back()->dirfrag = dirfrag_t(2, 3); + ls.back()->dname = "fooname"; + ls.back()->snapid = CEPH_NOSNAP; + ls.push_back(new MDSCacheObjectInfo); + ls.back()->ino = 121; + ls.back()->dirfrag = dirfrag_t(222, 0); + ls.back()->dname = "bar foo"; + ls.back()->snapid = 21322; +} diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index 6c69b70c8a45f..c9c30e3488ed2 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -1095,22 +1095,10 @@ public: MDSCacheObjectInfo() : ino(0) {} - void encode(bufferlist& bl) const { - __u8 struct_v = 1; - ::encode(struct_v, bl); - ::encode(ino, bl); - ::encode(dirfrag, bl); - ::encode(dname, bl); - ::encode(snapid, bl); - } - void decode(bufferlist::iterator& p) { - __u8 struct_v; - ::decode(struct_v, p); - ::decode(ino, p); - ::decode(dirfrag, p); - ::decode(dname, p); - ::decode(snapid, p); - } + void encode(bufferlist& bl) const; + void decode(bufferlist::iterator& bl); + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; inline bool operator==(const MDSCacheObjectInfo& l, const MDSCacheObjectInfo& r) { diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 90672a1aa75af..b7e798aef34ea 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -106,6 +106,7 @@ TYPE(old_inode_t) TYPE(fnode_t) TYPE(session_info_t) TYPE(string_snap_t) +TYPE(MDSCacheObjectInfo) #ifdef WITH_RADOSGW -- 2.39.5