]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: nest_info_t now uses modern encoding
authorGreg Farnum <greg@inktank.com>
Thu, 17 Jan 2013 18:27:49 +0000 (10:27 -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>
Signed-off-by: Greg Farnum <greg@inktank.com>
src/mds/mdstypes.cc
src/mds/mdstypes.h
src/test/encoding/types.h

index 37c686c62609375e022c491fbc6a0706f6fd5d7f..cb8a69e8197259572a83fca0676c393fe60f8451 100644 (file)
@@ -109,3 +109,76 @@ ostream& operator<<(ostream &out, const frag_info_t &f)
 }
 
 
+/*
+ * nest_info_t
+ */
+
+void nest_info_t::encode(bufferlist &bl) const
+{
+  ENCODE_START(2, 2, bl);
+  ::encode(version, bl);
+  ::encode(rbytes, bl);
+  ::encode(rfiles, bl);
+  ::encode(rsubdirs, bl);
+  ::encode(ranchors, bl);
+  ::encode(rsnaprealms, bl);
+  ::encode(rctime, bl);
+  ENCODE_FINISH(bl);
+}
+
+void nest_info_t::decode(bufferlist::iterator &bl)
+{
+  DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
+  ::decode(version, bl);
+  ::decode(rbytes, bl);
+  ::decode(rfiles, bl);
+  ::decode(rsubdirs, bl);
+  ::decode(ranchors, bl);
+  ::decode(rsnaprealms, bl);
+  ::decode(rctime, bl);
+  DECODE_FINISH(bl);
+}
+
+void nest_info_t::dump(Formatter *f) const
+{
+  f->dump_unsigned("version", version);
+  f->dump_unsigned("rbytes", rbytes);
+  f->dump_unsigned("rfiles", rfiles);
+  f->dump_unsigned("rsubdirs", rsubdirs);
+  f->dump_unsigned("ranchors", ranchors);
+  f->dump_unsigned("rsnaprealms", rsnaprealms);
+  f->dump_stream("rctime") << rctime;
+}
+
+void nest_info_t::generate_test_instances(list<nest_info_t*>& ls)
+{
+  ls.push_back(new nest_info_t);
+  ls.push_back(new nest_info_t);
+  ls.back()->version = 1;
+  ls.back()->rbytes = 2;
+  ls.back()->rfiles = 3;
+  ls.back()->rsubdirs = 4;
+  ls.back()->ranchors = 5;
+  ls.back()->rsnaprealms = 6;
+  ls.back()->rctime = utime_t(7, 8);
+}
+
+ostream& operator<<(ostream &out, const nest_info_t &n)
+{
+  if (n == nest_info_t())
+    return out << "n()";
+  out << "n(v" << n.version;
+  if (n.rctime != utime_t())
+    out << " rc" << n.rctime;
+  if (n.rbytes)
+    out << " b" << n.rbytes;
+  if (n.ranchors)
+    out << " a" << n.ranchors;
+  if (n.rsnaprealms)
+    out << " sr" << n.rsnaprealms;
+  if (n.rfiles || n.rsubdirs)
+    out << " " << n.rsize() << "=" << n.rfiles << "+" << n.rsubdirs;
+  out << ")";    
+  return out;
+}
+
index a6bf6d59321237213ed08cc14790fae7f02fbde0..8cce66f9a6977631aa6eb6c7263fcb29df5095a9 100644 (file)
@@ -219,30 +219,10 @@ struct nest_info_t : public scatter_info_t {
     rsnaprealms += cur.rsnaprealms - acc.rsnaprealms;
   }
 
-  void encode(bufferlist &bl) const {
-    __u8 v = 1;
-    ::encode(v, bl);
-
-    ::encode(version, bl);
-    ::encode(rbytes, bl);
-    ::encode(rfiles, bl);
-    ::encode(rsubdirs, bl);
-    ::encode(ranchors, bl);
-    ::encode(rsnaprealms, bl);
-    ::encode(rctime, bl);
-  }
-  void decode(bufferlist::iterator &bl) {
-    __u8 v;
-    ::decode(v, bl);
-
-    ::decode(version, bl);
-    ::decode(rbytes, bl);
-    ::decode(rfiles, bl);
-    ::decode(rsubdirs, bl);
-    ::decode(ranchors, bl);
-    ::decode(rsnaprealms, bl);
-    ::decode(rctime, bl);
- }
+  void encode(bufferlist &bl) const;
+  void decode(bufferlist::iterator& bl);
+  void dump(Formatter *f) const;
+  static void generate_test_instances(list<nest_info_t*>& ls);
 };
 WRITE_CLASS_ENCODER(nest_info_t)
 
@@ -250,23 +230,8 @@ inline bool operator==(const nest_info_t &l, const nest_info_t &r) {
   return memcmp(&l, &r, sizeof(l)) == 0;
 }
 
-inline ostream& operator<<(ostream &out, const nest_info_t &n) {
-  if (n == nest_info_t())
-    return out << "n()";
-  out << "n(v" << n.version;
-  if (n.rctime != utime_t())
-    out << " rc" << n.rctime;
-  if (n.rbytes)
-    out << " b" << n.rbytes;
-  if (n.ranchors)
-    out << " a" << n.ranchors;
-  if (n.rsnaprealms)
-    out << " sr" << n.rsnaprealms;
-  if (n.rfiles || n.rsubdirs)
-    out << " " << n.rsize() << "=" << n.rfiles << "+" << n.rsubdirs;
-  out << ")";    
-  return out;
-}
+ostream& operator<<(ostream &out, const nest_info_t &n);
+
 
 struct vinodeno_t {
   inodeno_t ino;
index b49210f0699e73e5d3792689f51dc2821e401a0b..28940f79962c503441e58129d34542accd9d03b0 100644 (file)
@@ -99,6 +99,7 @@ TYPE(sr_t)*/
 #include "mds/mdstypes.h"
 TYPE(file_layout_policy_t)
 TYPE(frag_info_t)
+TYPE(nest_info_t)
 
 #ifdef WITH_RADOSGW