From 709ff3d732b5d35ef014699c9fe6bd50c4d8ea8d Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Sun, 3 Feb 2013 15:45:31 -0800 Subject: [PATCH] mds: ESession more modernization for dencoder Signed-off-by: Greg Farnum --- src/mds/events/ESession.h | 26 ++++-------------------- src/mds/journal.cc | 42 +++++++++++++++++++++++++++++++++++++++ src/test/encoding/types.h | 2 ++ 3 files changed, 48 insertions(+), 22 deletions(-) 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 -- 2.47.3