]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mdsmap: uninline encode/decode
authorGreg Farnum <greg@inktank.com>
Tue, 15 Jan 2013 20:56:17 +0000 (12:56 -0800)
committerGreg Farnum <greg@inktank.com>
Tue, 5 Feb 2013 21:29:06 +0000 (13:29 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Farnum <greg@inktank.com>
src/mds/MDSMap.cc
src/mds/MDSMap.h

index 2118d5e1de92473f80b7262c8b46d4b37b9b5894..37e8ef7f05884600c6f828a4183b00da49e242d6 100644 (file)
@@ -14,6 +14,7 @@
 
 
 #include "MDSMap.h"
+#include "include/ceph_features.h"
 
 #include <sstream>
 using std::stringstream;
@@ -251,3 +252,151 @@ void MDSMap::get_health(list<pair<health_status_t,string> >& summary,
     summary.push_back(make_pair(HEALTH_WARN, oss.str()));
   }
 }
+
+void MDSMap::mds_info_t::encode(bufferlist& bl) const
+{
+  __u8 v = 3;
+  ::encode(v, bl);
+  ::encode(global_id, bl);
+  ::encode(name, bl);
+  ::encode(rank, bl);
+  ::encode(inc, bl);
+  ::encode(state, bl);
+  ::encode(state_seq, bl);
+  ::encode(addr, bl);
+  ::encode(laggy_since, bl);
+  ::encode(standby_for_rank, bl);
+  ::encode(standby_for_name, bl);
+  ::encode(export_targets, bl);
+}
+
+void MDSMap::mds_info_t::decode(bufferlist::iterator& bl)
+{
+  __u8 v;
+  ::decode(v, bl);
+  ::decode(global_id, bl);
+  ::decode(name, bl);
+  ::decode(rank, bl);
+  ::decode(inc, bl);
+  ::decode(state, bl);
+  ::decode(state_seq, bl);
+  ::decode(addr, bl);
+  ::decode(laggy_since, bl);
+  ::decode(standby_for_rank, bl);
+  ::decode(standby_for_name, bl);
+  if (v >= 2)
+    ::decode(export_targets, bl);
+}
+
+
+
+void MDSMap::encode_client_old(bufferlist& bl) const
+{
+  __u16 v = 2;
+  ::encode(v, bl);
+  ::encode(epoch, bl);
+  ::encode(flags, bl);
+  ::encode(last_failure, bl);
+  ::encode(root, bl);
+  ::encode(session_timeout, bl);
+  ::encode(session_autoclose, bl);
+  ::encode(max_file_size, bl);
+  ::encode(max_mds, bl);
+  ::encode(mds_info, bl);
+  __u32 n = data_pools.size();
+  ::encode(n, bl);
+  for (set<int64_t>::const_iterator p = data_pools.begin(); p != data_pools.end(); ++p) {
+    n = *p;
+    ::encode(n, bl);
+  }
+  int32_t m = cas_pool;
+  ::encode(m, bl);
+}
+
+void MDSMap::encode(bufferlist& bl) const
+{
+  __u16 v = 3;
+  ::encode(v, bl);
+  ::encode(epoch, bl);
+  ::encode(flags, bl);
+  ::encode(last_failure, bl);
+  ::encode(root, bl);
+  ::encode(session_timeout, bl);
+  ::encode(session_autoclose, bl);
+  ::encode(max_file_size, bl);
+  ::encode(max_mds, bl);
+  ::encode(mds_info, bl);
+  ::encode(data_pools, bl);
+  ::encode(cas_pool, bl);
+
+  // kclient ignores everything from here
+  __u16 ev = 5;
+  ::encode(ev, bl);
+  ::encode(compat, bl);
+  ::encode(metadata_pool, bl);
+  ::encode(created, bl);
+  ::encode(modified, bl);
+  ::encode(tableserver, bl);
+  ::encode(in, bl);
+  ::encode(inc, bl);
+  ::encode(up, bl);
+  ::encode(failed, bl);
+  ::encode(stopped, bl);
+  ::encode(last_failure_osd_epoch, bl);
+}
+
+void MDSMap::decode(bufferlist::iterator& p)
+{
+  __u16 v;
+  ::decode(v, p);
+  ::decode(epoch, p);
+  ::decode(flags, p);
+  ::decode(last_failure, p);
+  ::decode(root, p);
+  ::decode(session_timeout, p);
+  ::decode(session_autoclose, p);
+  ::decode(max_file_size, p);
+  ::decode(max_mds, p);
+  ::decode(mds_info, p);
+  if (v < 3) {
+    __u32 n;
+    ::decode(n, p);
+    while (n--) {
+      __u32 m;
+      ::decode(m, p);
+      data_pools.insert(m);
+    }
+    __s32 s;
+    ::decode(s, p);
+    cas_pool = s;
+  } else {
+    ::decode(data_pools, p);
+    ::decode(cas_pool, p);
+  }
+
+  // kclient ignores everything from here
+  __u16 ev = 1;
+  if (v >= 2)
+    ::decode(ev, p);
+  if (ev >= 3)
+    ::decode(compat, p);
+  else
+    compat = get_mdsmap_compat_set_base();
+  if (ev < 5) {
+    __u32 n;
+    ::decode(n, p);
+    metadata_pool = n;
+  } else {
+    ::decode(metadata_pool, p);
+  }
+  ::decode(created, p);
+  ::decode(modified, p);
+  ::decode(tableserver, p);
+  ::decode(in, p);
+  ::decode(inc, p);
+  ::decode(up, p);
+  ::decode(failed, p);
+  ::decode(stopped, p);
+  if (ev >= 4)
+    ::decode(last_failure_osd_epoch, p);
+}
index 47c2c52d23d38c375d158c0cc8d3c4d6fc6eecd8..a0fb6c583f0f0257d90112193f8e08dbc7ced211 100644 (file)
@@ -123,37 +123,8 @@ public:
 
     entity_inst_t get_inst() const { return entity_inst_t(entity_name_t::MDS(rank), addr); }
 
-    void encode(bufferlist& bl) const {
-      __u8 v = 3;
-      ::encode(v, bl);
-      ::encode(global_id, bl);
-      ::encode(name, bl);
-      ::encode(rank, bl);
-      ::encode(inc, bl);
-      ::encode(state, bl);
-      ::encode(state_seq, bl);
-      ::encode(addr, bl);
-      ::encode(laggy_since, bl);
-      ::encode(standby_for_rank, bl);
-      ::encode(standby_for_name, bl);
-      ::encode(export_targets, bl);
-    }
-    void decode(bufferlist::iterator& bl) {
-      __u8 v;
-      ::decode(v, bl);
-      ::decode(global_id, bl);
-      ::decode(name, bl);
-      ::decode(rank, bl);
-      ::decode(inc, bl);
-      ::decode(state, bl);
-      ::decode(state_seq, bl);
-      ::decode(addr, bl);
-      ::decode(laggy_since, bl);
-      ::decode(standby_for_rank, bl);
-      ::decode(standby_for_name, bl);
-      if (v >= 2)
-       ::decode(export_targets, bl);
-    }
+    void encode(bufferlist& bl) const;
+    void decode(bufferlist::iterator& p);
     void dump(Formatter *f) const;
   };
 
@@ -505,111 +476,9 @@ public:
     return -1;
   }
 
-  void encode_client_old(bufferlist& bl) const {
-    __u16 v = 2;
-    ::encode(v, bl);
-    ::encode(epoch, bl);
-    ::encode(flags, bl);
-    ::encode(last_failure, bl);
-    ::encode(root, bl);
-    ::encode(session_timeout, bl);
-    ::encode(session_autoclose, bl);
-    ::encode(max_file_size, bl);
-    ::encode(max_mds, bl);
-    ::encode(mds_info, bl);
-    __u32 n = data_pools.size();
-    ::encode(n, bl);
-    for (set<int64_t>::const_iterator p = data_pools.begin(); p != data_pools.end(); ++p) {
-      n = *p;
-      ::encode(n, bl);
-    }
-    int32_t m = cas_pool;
-    ::encode(m, bl);
-  }
-  void encode(bufferlist& bl) const {
-    __u16 v = 3;
-    ::encode(v, bl);
-    ::encode(epoch, bl);
-    ::encode(flags, bl);
-    ::encode(last_failure, bl);
-    ::encode(root, bl);
-    ::encode(session_timeout, bl);
-    ::encode(session_autoclose, bl);
-    ::encode(max_file_size, bl);
-    ::encode(max_mds, bl);
-    ::encode(mds_info, bl);
-    ::encode(data_pools, bl);
-    ::encode(cas_pool, bl);
-
-    // kclient ignores everything from here
-    __u16 ev = 5;
-    ::encode(ev, bl);
-    ::encode(compat, bl);
-    ::encode(metadata_pool, bl);
-    ::encode(created, bl);
-    ::encode(modified, bl);
-    ::encode(tableserver, bl);
-    ::encode(in, bl);
-    ::encode(inc, bl);
-    ::encode(up, bl);
-    ::encode(failed, bl);
-    ::encode(stopped, bl);
-    ::encode(last_failure_osd_epoch, bl);
-  }
-  void decode(bufferlist::iterator& p) {
-    __u16 v;
-    ::decode(v, p);
-    ::decode(epoch, p);
-    ::decode(flags, p);
-    ::decode(last_failure, p);
-    ::decode(root, p);
-    ::decode(session_timeout, p);
-    ::decode(session_autoclose, p);
-    ::decode(max_file_size, p);
-    ::decode(max_mds, p);
-    ::decode(mds_info, p);
-    if (v < 3) {
-      __u32 n;
-      ::decode(n, p);
-      while (n--) {
-       __u32 m;
-       ::decode(m, p);
-       data_pools.insert(m);
-      }
-      __s32 s;
-      ::decode(s, p);
-      cas_pool = s;
-    } else {
-      ::decode(data_pools, p);
-      ::decode(cas_pool, p);
-    }
-
-    // kclient ignores everything from here
-    __u16 ev = 1;
-    if (v >= 2)
-      ::decode(ev, p);
-    if (ev >= 3)
-      ::decode(compat, p);
-    else
-      compat = get_mdsmap_compat_set_base();
-    if (ev < 5) {
-      __u32 n;
-      ::decode(n, p);
-      metadata_pool = n;
-    } else {
-      ::decode(metadata_pool, p);
-    }
-    ::decode(created, p);
-    ::decode(modified, p);
-    ::decode(tableserver, p);
-    ::decode(in, p);
-    ::decode(inc, p);
-    ::decode(up, p);
-    ::decode(failed, p);
-    ::decode(stopped, p);
-    if (ev >= 4)
-      ::decode(last_failure_osd_epoch, p);
-  }
+  void encode_client_old(bufferlist& bl) const;
+  void encode(bufferlist& bl) const;
+  void decode(bufferlist::iterator& p);
   void decode(bufferlist& bl) {
     bufferlist::iterator p = bl.begin();
     decode(p);