From: Greg Farnum Date: Thu, 17 Jan 2013 18:28:15 +0000 (-0800) Subject: mds: client_writeable_range_t now uses modern encoding X-Git-Tag: v0.58~100^2~67 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=49eb4d68a40c0376bd1486c8cc1ff2a5ff580875;p=ceph.git mds: client_writeable_range_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 cb8a69e81972..f27d769fd73f 100644 --- a/src/mds/mdstypes.cc +++ b/src/mds/mdstypes.cc @@ -182,3 +182,45 @@ ostream& operator<<(ostream &out, const nest_info_t &n) return out; } + +/* + * client_writeable_range_t + */ + +void client_writeable_range_t::encode(bufferlist &bl) const +{ + ENCODE_START(2, 2, bl); + ::encode(range, bl); + ::encode(follows, bl); + ENCODE_FINISH(bl); +} + +void client_writeable_range_t::decode(bufferlist::iterator& bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl); + ::decode(range, bl); + ::decode(follows, bl); + DECODE_FINISH(bl); +} + +void client_writeable_range_t::dump(Formatter *f) const +{ + f->dump_unsigned("first", range.first); + f->dump_unsigned("last", range.last); + f->dump_unsigned("follows", follows); +} + +void client_writeable_range_t::generate_test_instances(list& ls) +{ + ls.push_back(new client_writeable_range_t); + ls.push_back(new client_writeable_range_t); + ls.back()->range.first = 123; + ls.back()->range.last = 456; + ls.back()->follows = 12; +} + +ostream& operator<<(ostream& out, const client_writeable_range_t& r) +{ + return out << r.range << "@" << r.follows; +} + diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index 8cce66f9a697..8435a59e4b5b 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -307,29 +307,24 @@ inline bool operator==(const byte_range_t& l, const byte_range_t& r) { } +/* + * client_writeable_range_t + */ struct client_writeable_range_t { byte_range_t range; snapid_t follows; // aka "data+metadata flushed thru" - void encode(bufferlist &bl) const { - __u8 v = 1; - ::encode(v, bl); - ::encode(range, bl); - ::encode(follows, bl); - } - void decode(bufferlist::iterator& bl) { - __u8 v; - ::decode(v, bl); - ::decode(range, bl); - ::decode(follows, bl); - } + client_writeable_range_t() : follows(0) {} + + void encode(bufferlist &bl) const; + void decode(bufferlist::iterator& bl); + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(client_writeable_range_t) -inline ostream& operator<<(ostream& out, const client_writeable_range_t& r) -{ - return out << r.range << "@" << r.follows; -} +ostream& operator<<(ostream& out, const client_writeable_range_t& r); + inline bool operator==(const client_writeable_range_t& l, const client_writeable_range_t& r) { return l.range == r.range && l.follows == r.follows; } diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 28940f79962c..ebe3d69611aa 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -100,6 +100,7 @@ TYPE(sr_t)*/ TYPE(file_layout_policy_t) TYPE(frag_info_t) TYPE(nest_info_t) +TYPE(client_writeable_range_t) #ifdef WITH_RADOSGW