]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: dirfrag_load_vec_t now uses modern encoding
authorGreg Farnum <greg@inktank.com>
Fri, 18 Jan 2013 21:11:38 +0000 (13:11 -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/mdstypes.cc
src/mds/mdstypes.h
src/test/encoding/types.h

index 82f533b51ff9d3950625faf1e338aaede281bcbd..8873a03f3c1c14b4757b2f5d2d03af7fd0d4571d 100644 (file)
@@ -778,3 +778,24 @@ void inode_load_vec_t::generate_test_instances(list<inode_load_vec_t*>& ls)
   utime_t sample;
   ls.push_back(new inode_load_vec_t(sample));
 }
+
+
+/*
+ * dirfrag_load_vec_t
+ */
+void dirfrag_load_vec_t::dump(Formatter *f) const
+{
+  f->open_array_section("Decay Counters");
+  for (vector<DecayCounter>::const_iterator i = vec.begin(); i != vec.end(); ++i) {
+    f->open_object_section("Decay Counter");
+    i->dump(f);
+    f->close_section();
+  }
+  f->close_section();
+}
+
+void dirfrag_load_vec_t::generate_test_instances(list<dirfrag_load_vec_t*>& ls)
+{
+  utime_t sample;
+  ls.push_back(new dirfrag_load_vec_t(sample));
+}
index 6b50d554058d14c808906ed3f78e421c77c6ebf2..a2417c65fb3e5197cbc2fd8e157ca479d383c0c1 100644 (file)
@@ -850,20 +850,30 @@ public:
   std::vector < DecayCounter > vec;
   dirfrag_load_vec_t(const utime_t &now)
      : vec(NUM, DecayCounter(now))
-  {
-  }
+  { }
+  // for dencoder infrastructure
+  dirfrag_load_vec_t()
+    : vec(NUM, DecayCounter())
+  {}
   void encode(bufferlist &bl) const {
-    __u8 struct_v = 1;
-    ::encode(struct_v, bl);
+    ENCODE_START(2, 2, bl);
     for (int i=0; i<NUM; i++)
       ::encode(vec[i], bl);
+    ENCODE_FINISH(bl);
   }
   void decode(const utime_t &t, bufferlist::iterator &p) {
-    __u8 struct_v;
-    ::decode(struct_v, p);
+    DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, p);
     for (int i=0; i<NUM; i++)
       ::decode(vec[i], t, p);
+    DECODE_FINISH(p);
   }
+  // for dencoder infrastructure
+  void decode(bufferlist::iterator& p) {
+    utime_t sample;
+    decode(sample, p);
+  }
+  void dump(Formatter *f) const;
+  static void generate_test_instances(list<dirfrag_load_vec_t*>& ls);
 
   DecayCounter &get(int t) { 
     assert(t < NUM);
index 272df0aabbf35e1e043fa91d7488fd0c4c2a56cf..2c706a98e77b0bf5f63133d366400c98814e125c 100644 (file)
@@ -113,6 +113,7 @@ TYPE(string_snap_t)
 TYPE(MDSCacheObjectInfo)
 TYPE(mds_table_pending_t)
 TYPE(inode_load_vec_t)
+TYPE(dirfrag_load_vec_t)
 
 #include "mds/MDSMap.h"
 TYPE_FEATUREFUL(MDSMap)