From: Greg Farnum Date: Mon, 4 Feb 2013 05:26:06 +0000 (-0800) Subject: mds: EUpdate more modernization for dencoder X-Git-Tag: v0.58~100^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3fb1b21982014b9d2581264fabe4b77af8674684;p=ceph.git mds: EUpdate more modernization for dencoder Signed-off-by: Greg Farnum --- diff --git a/src/mds/events/EUpdate.h b/src/mds/events/EUpdate.h index 9a1aceb38578..79414fe5c7d3 100644 --- a/src/mds/events/EUpdate.h +++ b/src/mds/events/EUpdate.h @@ -27,7 +27,7 @@ public: metareqid_t reqid; bool had_slaves; - EUpdate() : LogEvent(EVENT_UPDATE) { } + EUpdate() : LogEvent(EVENT_UPDATE), cmapv(0), had_slaves(false) { } EUpdate(MDLog *mdlog, const char *s) : LogEvent(EVENT_UPDATE), metablob(mdlog), type(s), cmapv(0), had_slaves(false) { } @@ -38,30 +38,10 @@ public: out << metablob; } - void encode(bufferlist &bl) const { - ENCODE_START(4, 4, bl); - ::encode(stamp, bl); - ::encode(type, bl); - ::encode(metablob, bl); - ::encode(client_map, bl); - ::encode(cmapv, bl); - ::encode(reqid, bl); - ::encode(had_slaves, bl); - ENCODE_FINISH(bl); - } - void decode(bufferlist::iterator &bl) { - DECODE_START_LEGACY_COMPAT_LEN(4, 4, 4, bl); - if (struct_v >= 2) - ::decode(stamp, bl); - ::decode(type, bl); - ::decode(metablob, bl); - ::decode(client_map, bl); - if (struct_v >= 3) - ::decode(cmapv, bl); - ::decode(reqid, bl); - ::decode(had_slaves, bl); - DECODE_FINISH(bl); - } + void encode(bufferlist& bl) const; + void decode(bufferlist::iterator& bl); + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); void update_segment(); void replay(MDS *mds); diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 6016edcaaffb..62d796af4207 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -1663,6 +1663,53 @@ void ESnap::replay(MDS *mds) // ----------------------- // EUpdate +void EUpdate::encode(bufferlist &bl) const +{ + ENCODE_START(4, 4, bl); + ::encode(stamp, bl); + ::encode(type, bl); + ::encode(metablob, bl); + ::encode(client_map, bl); + ::encode(cmapv, bl); + ::encode(reqid, bl); + ::encode(had_slaves, bl); + ENCODE_FINISH(bl); +} + +void EUpdate::decode(bufferlist::iterator &bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(4, 4, 4, bl); + if (struct_v >= 2) + ::decode(stamp, bl); + ::decode(type, bl); + ::decode(metablob, bl); + ::decode(client_map, bl); + if (struct_v >= 3) + ::decode(cmapv, bl); + ::decode(reqid, bl); + ::decode(had_slaves, bl); + DECODE_FINISH(bl); +} + +void EUpdate::dump(Formatter *f) const +{ + f->open_object_section("metablob"); + metablob.dump(f); + f->close_section(); // metablob + + f->dump_string("type", type); + f->dump_int("client map length", client_map.length()); + f->dump_int("client map version", cmapv); + f->dump_stream("reqid") << reqid; + f->dump_string("had slaves", had_slaves ? "true" : "false"); +} + +void EUpdate::generate_test_instances(list& ls) +{ + ls.push_back(new EUpdate()); +} + + void EUpdate::update_segment() { metablob.update_segment(_segment); diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 311b89eab145..2ea5b92d24cb 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -159,6 +159,8 @@ TYPE(ESubtreeMap) TYPE(ETableClient) #include "mds/events/ETableServer.h" TYPE(ETableServer) +#include "mds/events/EUpdate.h" +TYPE(EUpdate) #ifdef WITH_RADOSGW