From: Greg Farnum Date: Sun, 3 Feb 2013 23:45:31 +0000 (-0800) Subject: mds: ESession more modernization for dencoder X-Git-Tag: v0.58~100^2~24 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=709ff3d732b5d35ef014699c9fe6bd50c4d8ea8d;p=ceph.git mds: ESession more modernization for dencoder Signed-off-by: Greg Farnum --- diff --git a/src/mds/events/ESession.h b/src/mds/events/ESession.h index 74af3fd88153..e2e269fa4298 100644 --- a/src/mds/events/ESession.h +++ b/src/mds/events/ESession.h @@ -46,28 +46,10 @@ class ESession : public LogEvent { cmapv(v), inos(i), inotablev(iv) { } - void encode(bufferlist &bl) const { - ENCODE_START(3, 3, bl); - ::encode(stamp, bl); - ::encode(client_inst, bl); - ::encode(open, bl); - ::encode(cmapv, bl); - ::encode(inos, bl); - ::encode(inotablev, bl); - ENCODE_FINISH(bl); - } - void decode(bufferlist::iterator &bl) { - DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, bl); - if (struct_v >= 2) - ::decode(stamp, bl); - ::decode(client_inst, bl); - ::decode(open, bl); - ::decode(cmapv, bl); - ::decode(inos, bl); - ::decode(inotablev, 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 print(ostream& out) { if (open) diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 81dcc087b88a..4a7c750b641d 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -1374,6 +1374,48 @@ void ESession::replay(MDS *mds) update_segment(); } +void ESession::encode(bufferlist &bl) const +{ + ENCODE_START(3, 3, bl); + ::encode(stamp, bl); + ::encode(client_inst, bl); + ::encode(open, bl); + ::encode(cmapv, bl); + ::encode(inos, bl); + ::encode(inotablev, bl); + ENCODE_FINISH(bl); +} + +void ESession::decode(bufferlist::iterator &bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, bl); + if (struct_v >= 2) + ::decode(stamp, bl); + ::decode(client_inst, bl); + ::decode(open, bl); + ::decode(cmapv, bl); + ::decode(inos, bl); + ::decode(inotablev, bl); + DECODE_FINISH(bl); +} + +void ESession::dump(Formatter *f) const +{ + f->dump_stream("client instance") << client_inst; + f->dump_string("open", open ? "true" : "false"); + f->dump_int("client map version", cmapv); + f->dump_stream("inos") << inos; + f->dump_int("inotable version", inotablev); +} + +void ESession::generate_test_instances(list& ls) +{ + ls.push_back(new ESession); +} + +// ----------------------- +// ESession + void ESessions::update_segment() { _segment->sessionmapv = cmapv; diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index e1c23c91a545..75a73e11e5ea 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -143,6 +143,8 @@ TYPE(EMetaBlob) TYPE(EOpen) #include "mds/events/EResetJournal.h" TYPE(EResetJournal) +#include "mds/events/ESession.h" +TYPE(ESession) #ifdef WITH_RADOSGW