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

index 77dcd28413a90bc45b10f78032623fb2e2a74794..fd32486e8e26253b6cb45bc174383fc2876ca043 100644 (file)
@@ -115,7 +115,7 @@ public:
   __u8 op;  // prepare, commit, abort
   __u8 origop; // link | rename
 
-  ESlaveUpdate() : LogEvent(EVENT_SLAVEUPDATE) { }
+  ESlaveUpdate() : LogEvent(EVENT_SLAVEUPDATE), master(0), op(0), origop(0) { }
   ESlaveUpdate(MDLog *mdlog, const char *s, metareqid_t ri, int mastermds, int o, int oo) : 
     LogEvent(EVENT_SLAVEUPDATE), commit(mdlog), 
     type(s),
@@ -134,31 +134,10 @@ public:
     out << commit;
   }
 
-  void encode(bufferlist &bl) const {
-    ENCODE_START(3, 3, bl);
-    ::encode(stamp, bl);
-    ::encode(type, bl);
-    ::encode(reqid, bl);
-    ::encode(master, bl);
-    ::encode(op, bl);
-    ::encode(origop, bl);
-    ::encode(commit, bl);
-    ::encode(rollback, 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(type, bl);
-    ::decode(reqid, bl);
-    ::decode(master, bl);
-    ::decode(op, bl);
-    ::decode(origop, bl);
-    ::decode(commit, bl);
-    ::decode(rollback, 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<ESlaveUpdate*>& ls);
 
   void replay(MDS *mds);
 };
index edd15b78845fa56dcbde780355a6512c378e9829..15abf0690ab1bf1b549b3a62ea81a42ea822fef4 100644 (file)
@@ -1911,6 +1911,55 @@ void rename_rollback::generate_test_instances(list<rename_rollback*>& ls)
   ls.back()->stray.remote_d_type = IFTODT(S_IFREG);
 }
 
+void ESlaveUpdate::encode(bufferlist &bl) const
+{
+  ENCODE_START(3, 3, bl);
+  ::encode(stamp, bl);
+  ::encode(type, bl);
+  ::encode(reqid, bl);
+  ::encode(master, bl);
+  ::encode(op, bl);
+  ::encode(origop, bl);
+  ::encode(commit, bl);
+  ::encode(rollback, bl);
+  ENCODE_FINISH(bl);
+} 
+
+void ESlaveUpdate::decode(bufferlist::iterator &bl)
+{
+  DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, bl);
+  if (struct_v >= 2)
+    ::decode(stamp, bl);
+  ::decode(type, bl);
+  ::decode(reqid, bl);
+  ::decode(master, bl);
+  ::decode(op, bl);
+  ::decode(origop, bl);
+  ::decode(commit, bl);
+  ::decode(rollback, bl);
+  DECODE_FINISH(bl);
+}
+
+void ESlaveUpdate::dump(Formatter *f) const
+{
+  f->open_object_section("metablob");
+  commit.dump(f);
+  f->close_section(); // metablob
+
+  f->dump_int("rollback length", rollback.length());
+  f->dump_string("type", type);
+  f->dump_stream("metareqid") << reqid;
+  f->dump_int("master", master);
+  f->dump_int("op", op);
+  f->dump_int("original op", origop);
+}
+
+void ESlaveUpdate::generate_test_instances(list<ESlaveUpdate*>& ls)
+{
+  ls.push_back(new ESlaveUpdate());
+}
+
+
 void ESlaveUpdate::replay(MDS *mds)
 {
   MDSlaveUpdate *su;
index 507189cb9a95e0273395d3fbff24a624e7053dd8..4b8e091a352e78cfd9d5415c9ecdcc5a4cd04156 100644 (file)
@@ -152,6 +152,7 @@ TYPE(link_rollback)
 TYPE(rmdir_rollback)
 TYPE(rename_rollback::drec)
 TYPE(rename_rollback)
+TYPE(ESlaveUpdate)
 
 #ifdef WITH_RADOSGW