]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: EUpdate more modernization for dencoder
authorGreg Farnum <greg@inktank.com>
Mon, 4 Feb 2013 05:26:06 +0000 (21:26 -0800)
committerGreg Farnum <greg@inktank.com>
Fri, 8 Feb 2013 21:17:54 +0000 (13:17 -0800)
Signed-off-by: Greg Farnum <greg@inktank.com>
src/mds/events/EUpdate.h
src/mds/journal.cc
src/test/encoding/types.h

index 9a1aceb3857897a1699fb2da53092faf19f02552..79414fe5c7d329b9bcd2d292cb3b243e0f4e057e 100644 (file)
@@ -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<EUpdate*>& ls);
 
   void update_segment();
   void replay(MDS *mds);
index 6016edcaaffbb060f4889692e6d49da068925a7d..62d796af4207b09161c268fda8fe7715746bed1b 100644 (file)
@@ -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<EUpdate*>& ls)
+{
+  ls.push_back(new EUpdate());
+}
+
+
 void EUpdate::update_segment()
 {
   metablob.update_segment(_segment);
index 311b89eab1450d4488f5f94adfc7b5edd9222d94..2ea5b92d24cb7503006139abd26a7fa3842bd3f3 100644 (file)
@@ -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