From: Greg Farnum Date: Thu, 17 Jan 2013 18:31:48 +0000 (-0800) Subject: mds: string_snap_t now uses modern encoding X-Git-Tag: v0.58~100^2~59 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d580a581cd5d0c27b102fea34a8497cbd6238fc6;p=ceph.git mds: string_snap_t now uses modern encoding Signed-off-by: Sage Weil Signed-off-by: Greg Farnum --- diff --git a/src/mds/mdstypes.cc b/src/mds/mdstypes.cc index 33a16b6afb45..02d7946db721 100644 --- a/src/mds/mdstypes.cc +++ b/src/mds/mdstypes.cc @@ -576,3 +576,40 @@ void session_info_t::generate_test_instances(list& ls) ls.back()->prealloc_inos.insert(377, 112); // we can't add used inos; they're cleared on decode } + + +/* + * string_snap_t + */ +void string_snap_t::encode(bufferlist& bl) const +{ + ENCODE_START(2, 2, bl); + ::encode(name, bl); + ::encode(snapid, bl); + ENCODE_FINISH(bl); +} + +void string_snap_t::decode(bufferlist::iterator& bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl); + ::decode(name, bl); + ::decode(snapid, bl); + DECODE_FINISH(bl); +} + +void string_snap_t::dump(Formatter *f) const +{ + f->dump_string("name", name); + f->dump_unsigned("snapid", snapid); +} + +void string_snap_t::generate_test_instances(list& ls) +{ + ls.push_back(new string_snap_t); + ls.push_back(new string_snap_t); + ls.back()->name = "foo"; + ls.back()->snapid = 123; + ls.push_back(new string_snap_t); + ls.back()->name = "bar"; + ls.back()->snapid = 456; +} diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index f262737ebec1..6c69b70c8a45 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -597,18 +597,11 @@ struct string_snap_t { string_snap_t() {} string_snap_t(const string& n, snapid_t s) : name(n), snapid(s) {} string_snap_t(const char *n, snapid_t s) : name(n), snapid(s) {} - void encode(bufferlist& bl) const { - __u8 struct_v = 1; - ::encode(struct_v, bl); - ::encode(name, bl); - ::encode(snapid, bl); - } - void decode(bufferlist::iterator& bl) { - __u8 struct_v = 1; - ::decode(struct_v, bl); - ::decode(name, bl); - ::decode(snapid, bl); - } + + void encode(bufferlist& bl) const; + void decode(bufferlist::iterator& p); + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(string_snap_t) diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 2aa52001239b..90672a1aa75a 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -105,6 +105,7 @@ TYPE(inode_t) TYPE(old_inode_t) TYPE(fnode_t) TYPE(session_info_t) +TYPE(string_snap_t) #ifdef WITH_RADOSGW