]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: frag_info_t now uses modern encoding
authorGreg Farnum <greg@inktank.com>
Thu, 17 Jan 2013 18:23:41 +0000 (10:23 -0800)
committerGreg Farnum <greg@inktank.com>
Tue, 5 Feb 2013 21:29:05 +0000 (13:29 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
src/mds/mdstypes.cc
src/mds/mdstypes.h
src/test/encoding/types.h

index 3a113af7bd823267c07f5cd0b97e83ffcad2bae1..eaeecc21b93a176339a5c22215e9e1f3e346dad0 100644 (file)
@@ -4,6 +4,10 @@
 #include "mdstypes.h"
 #include "common/Formatter.h"
 
+/*
+ * default_file_layout
+ */
+
 void default_file_layout::encode(bufferlist &bl) const
 {
   ENCODE_START(2, 2, bl);
@@ -47,3 +51,61 @@ void default_file_layout::generate_test_instances(list<default_file_layout*>& ls
   ls.back()->layout.fl_object_stripe_unit = 8;
   ls.back()->layout.fl_pg_pool = 9;
 }
+
+
+/*
+ * frag_info_t
+ */
+
+void frag_info_t::encode(bufferlist &bl) const
+{
+  ENCODE_START(2, 2, bl);
+  ::encode(version, bl);
+  ::encode(mtime, bl);
+  ::encode(nfiles, bl);
+  ::encode(nsubdirs, bl);
+  ENCODE_FINISH(bl);
+}
+
+void frag_info_t::decode(bufferlist::iterator &bl)
+{
+  DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
+  ::decode(version, bl);
+  ::decode(mtime, bl);
+  ::decode(nfiles, bl);
+  ::decode(nsubdirs, bl);
+  DECODE_FINISH(bl);
+}
+
+void frag_info_t::dump(Formatter *f) const
+{
+  f->dump_unsigned("version", version);
+  f->dump_stream("mtime") << mtime;
+  f->dump_unsigned("num_files", nfiles);
+  f->dump_unsigned("num_subdirs", nsubdirs);
+}
+
+void frag_info_t::generate_test_instances(list<frag_info_t*>& ls)
+{
+  ls.push_back(new frag_info_t);
+  ls.push_back(new frag_info_t);
+  ls.back()->version = 1;
+  ls.back()->mtime = utime_t(2, 3);
+  ls.back()->nfiles = 4;
+  ls.back()->nsubdirs = 5;
+}
+
+ostream& operator<<(ostream &out, const frag_info_t &f)
+{
+  if (f == frag_info_t())
+    return out << "f()";
+  out << "f(v" << f.version;
+  if (f.mtime != utime_t())
+    out << " m" << f.mtime;
+  if (f.nfiles || f.nsubdirs)
+    out << " " << f.size() << "=" << f.nfiles << "+" << f.nsubdirs;
+  out << ")";
+  return out;
+}
+
+
index 58f647569193b7fe67a2089320ed5dc969e0a8cd..4c38bd5717141d277d286ab94aaee59ad4b1d0d7 100644 (file)
@@ -163,24 +163,10 @@ struct frag_info_t : public scatter_info_t {
     nsubdirs += other.nsubdirs;
   }
 
-  void encode(bufferlist &bl) const {
-    __u8 v = 1;
-    ::encode(v, bl);
-
-    ::encode(version, bl);
-    ::encode(mtime, bl);
-    ::encode(nfiles, bl);
-    ::encode(nsubdirs, bl);
-  }
-  void decode(bufferlist::iterator &bl) {
-    __u8 v;
-    ::decode(v, bl);
-
-    ::decode(version, bl);
-    ::decode(mtime, bl);
-    ::decode(nfiles, bl);
-    ::decode(nsubdirs, bl);
- }
+  void encode(bufferlist &bl) const;
+  void decode(bufferlist::iterator& bl);
+  void dump(Formatter *f) const;
+  static void generate_test_instances(list<frag_info_t*>& ls);
 };
 WRITE_CLASS_ENCODER(frag_info_t)
 
@@ -188,17 +174,8 @@ inline bool operator==(const frag_info_t &l, const frag_info_t &r) {
   return memcmp(&l, &r, sizeof(l)) == 0;
 }
 
-inline ostream& operator<<(ostream &out, const frag_info_t &f) {
-  if (f == frag_info_t())
-    return out << "f()";
-  out << "f(v" << f.version;
-  if (f.mtime != utime_t())
-    out << " m" << f.mtime;
-  if (f.nfiles || f.nsubdirs)
-    out << " " << f.size() << "=" << f.nfiles << "+" << f.nsubdirs;
-  out << ")";    
-  return out;
-}
+ostream& operator<<(ostream &out, const frag_info_t &f);
+
 
 struct nest_info_t : public scatter_info_t {
   // this frag + children
index 321250c17b532d2839ea4396faf4dcf1b8018970..4b06a72bee6a997e7af8eeb9e842f6fbcb837ada 100644 (file)
@@ -98,6 +98,7 @@ TYPE(sr_t)*/
 
 #include "mds/mdstypes.h"
 TYPE(default_file_layout)
+TYPE(frag_info_t)
 
 #ifdef WITH_RADOSGW