]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon: uninline Monmap encode/decode
authorSage Weil <sage@newdream.net>
Mon, 6 Feb 2012 23:13:26 +0000 (15:13 -0800)
committerSage Weil <sage@newdream.net>
Wed, 8 Feb 2012 21:12:18 +0000 (13:12 -0800)
Signed-off-by: Sage Weil <sage@newdream.net>
src/mon/MonMap.cc
src/mon/MonMap.h

index 69de6a2eefdcda0b6354f4face195bef72ffe061..5e62c0a133e04ba22c61b8b17c93aa921be9182f 100644 (file)
@@ -9,6 +9,54 @@
 
 using ceph::Formatter;
 
+void MonMap::encode(bufferlist& blist) const
+{
+  __u16 v = 2;
+  ::encode(v, blist);
+  ::encode_raw(fsid, blist);
+  ::encode(epoch, blist);
+  ::encode(mon_addr, blist);
+  ::encode(last_changed, blist);
+  ::encode(created, blist);
+}
+
+void MonMap::encode_v1(bufferlist& blist) const
+{
+  __u16 v = 1;
+  ::encode(v, blist);
+  ::encode_raw(fsid, blist);
+  ::encode(epoch, blist);
+  vector<entity_inst_t> mon_inst(mon_addr.size());
+  for (unsigned n = 0; n < mon_addr.size(); n++)
+    mon_inst[n] = get_inst(n);
+  ::encode(mon_inst, blist);
+  ::encode(last_changed, blist);
+  ::encode(created, blist);
+}
+
+void MonMap::decode(bufferlist::iterator &p)
+{
+  __u16 v;
+  ::decode(v, p);
+  ::decode_raw(fsid, p);
+  ::decode(epoch, p);
+  if (v == 1) {
+    vector<entity_inst_t> mon_inst;
+    ::decode(mon_inst, p);
+    for (unsigned i = 0; i < mon_inst.size(); i++) {
+      char n[2];
+      n[0] = '0' + i;
+      n[1] = 0;
+      string name = n;
+      mon_addr[name] = mon_inst[i].addr;
+    }
+  } else
+    ::decode(mon_addr, p);
+  ::decode(last_changed, p);
+  ::decode(created, p);
+  calc_ranks();
+}
+
 // read from/write to a file
 int MonMap::write(const char *fn) 
 {
index ffeb572ccaf9c19df5fc9af57a093fe6069d20a5..2159c5f3968730c42569bb958d6815fe1ec2b5e6 100644 (file)
@@ -158,7 +158,7 @@ class MonMap {
     i.name = entity_name_t::MON(m);
     return i;
   }
-  entity_inst_t get_inst(unsigned m) {
+  entity_inst_t get_inst(unsigned m) const {
     assert(m < rank_addr.size());
     entity_inst_t i;
     i.addr = rank_addr[m];
@@ -166,53 +166,14 @@ class MonMap {
     return i;
   }
 
-  void encode(bufferlist& blist) {
-    __u16 v = 2;
-    ::encode(v, blist);
-    ::encode_raw(fsid, blist);
-    ::encode(epoch, blist);
-    ::encode(mon_addr, blist);
-    ::encode(last_changed, blist);
-    ::encode(created, blist);
-  }
-  void encode_v1(bufferlist& blist) {
-    __u16 v = 1;
-    ::encode(v, blist);
-    ::encode_raw(fsid, blist);
-    ::encode(epoch, blist);
-    vector<entity_inst_t> mon_inst(mon_addr.size());
-    for (unsigned n = 0; n < mon_addr.size(); n++)
-      mon_inst[n] = get_inst(n);
-    ::encode(mon_inst, blist);
-    ::encode(last_changed, blist);
-    ::encode(created, blist);
-  }
+  void encode(bufferlist& blist) const;
+  void encode_v1(bufferlist& blist) const;
 
   void decode(bufferlist& blist) {
     bufferlist::iterator p = blist.begin();
     decode(p);
   }
-  void decode(bufferlist::iterator &p) {
-    __u16 v;
-    ::decode(v, p);
-    ::decode_raw(fsid, p);
-    ::decode(epoch, p);
-    if (v == 1) {
-      vector<entity_inst_t> mon_inst;
-      ::decode(mon_inst, p);
-      for (unsigned i = 0; i < mon_inst.size(); i++) {
-       char n[2];
-       n[0] = '0' + i;
-       n[1] = 0;
-       string name = n;
-       mon_addr[name] = mon_inst[i].addr;
-      }
-    } else
-      ::decode(mon_addr, p);
-    ::decode(last_changed, p);
-    ::decode(created, p);
-    calc_ranks();
-  }
+  void decode(bufferlist::iterator &p);
 
   void generate_fsid() {
     fsid.generate_random();