]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: uninline Capability encoders
authorSage Weil <sage@inktank.com>
Fri, 21 Sep 2012 15:53:21 +0000 (08:53 -0700)
committerGreg Farnum <greg@inktank.com>
Tue, 5 Feb 2013 21:29:06 +0000 (13:29 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
src/Makefile.am
src/mds/Capability.cc [new file with mode: 0644]
src/mds/Capability.h

index ad1b5dab64e2fb856e5c6583bae8e0aeb57cdc6b..b40ffff922b9912d44b67c321044d9cb3988b64f 100644 (file)
@@ -1343,6 +1343,7 @@ noinst_LIBRARIES += libmon.a
 
 libmds_a_SOURCES = \
        mds/Anchor.cc \
+       mds/Capability.cc \
        mds/Dumper.cc \
        mds/Resetter.cc \
        mds/MDS.cc \
diff --git a/src/mds/Capability.cc b/src/mds/Capability.cc
new file mode 100644 (file)
index 0000000..0491d52
--- /dev/null
@@ -0,0 +1,100 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- 
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2004-2006 Sage Weil <sage@newdream.net>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software 
+ * Foundation.  See file COPYING.
+ * 
+ */
+
+#include "Capability.h"
+
+#include "common/Formatter.h"
+
+
+/*
+ * Capability::Export
+ */
+
+void Capability::Export::encode(bufferlist &bl) const
+{
+  __u8 struct_v = 1;
+  ::encode(struct_v, bl);
+  ::encode(wanted, bl);
+  ::encode(issued, bl);
+  ::encode(pending, bl);
+  ::encode(client_follows, bl);
+  ::encode(mseq, bl);
+  ::encode(last_issue_stamp, bl);
+}
+
+void Capability::Export::decode(bufferlist::iterator &p)
+{
+  __u8 struct_v;
+  ::decode(struct_v, p);
+  ::decode(wanted, p);
+  ::decode(issued, p);
+  ::decode(pending, p);
+  ::decode(client_follows, p);
+  ::decode(mseq, p);
+  ::decode(last_issue_stamp, p);
+}
+
+
+/*
+ * Capability::revoke_info
+ */
+
+void Capability::revoke_info::encode(bufferlist& bl) const
+{
+  __u8 struct_v = 1;
+  ::encode(struct_v, bl);
+  ::encode(before, bl);
+  ::encode(seq, bl);
+  ::encode(last_issue, bl);
+}
+
+void Capability::revoke_info::decode(bufferlist::iterator& bl)
+{
+  __u8 struct_v;
+  ::decode(struct_v, bl);
+  ::decode(before, bl);
+  ::decode(seq, bl);
+  ::decode(last_issue, bl);
+}
+
+
+/*
+ * Capability
+ */
+
+void Capability::encode(bufferlist& bl) const
+{
+  __u8 struct_v = 1;
+  ::encode(struct_v, bl);
+  ::encode(last_sent, bl);
+  ::encode(last_issue_stamp, bl);
+
+  ::encode(_wanted, bl);
+  ::encode(_pending, bl);
+  ::encode(_revokes, bl);
+}
+
+void Capability::decode(bufferlist::iterator &bl)
+{
+  __u8 struct_v;
+  ::decode(struct_v, bl);
+  ::decode(last_sent, bl);
+  ::decode(last_issue_stamp, bl);
+
+  ::decode(_wanted, bl);
+  ::decode(_pending, bl);
+  ::decode(_revokes, bl);
+  
+  _calc_issued();
+}
index 6fe67f45b1dce8a8c11d53c247a3fb6aa77f658b..4008a8359785819fb8e40c67296ca09c71a3ca9c 100644 (file)
@@ -21,6 +21,8 @@
 
 #include "common/config.h"
 
+#include "mdstypes.h"
+
 /*
 
   Capability protocol notes.
 
 class CInode;
 
+namespace ceph {
+  class Formatter;
+}
+
 class Capability {
 private:
   static boost::pool<> pool;
@@ -81,26 +87,8 @@ public:
     Export() {}
     Export(int w, int i, int p, snapid_t cf, ceph_seq_t s, utime_t lis) : 
       wanted(w), issued(i), pending(p), client_follows(cf), mseq(s), last_issue_stamp(lis) {}
-    void encode(bufferlist &bl) const {
-      __u8 struct_v = 1;
-      ::encode(struct_v, bl);
-      ::encode(wanted, bl);
-      ::encode(issued, bl);
-      ::encode(pending, bl);
-      ::encode(client_follows, bl);
-      ::encode(mseq, bl);
-      ::encode(last_issue_stamp, bl);
-    }
-    void decode(bufferlist::iterator &p) {
-      __u8 struct_v;
-      ::decode(struct_v, p);
-      ::decode(wanted, p);
-      ::decode(issued, p);
-      ::decode(pending, p);
-      ::decode(client_follows, p);
-      ::decode(mseq, p);
-      ::decode(last_issue_stamp, p);
-    }
+    void encode(bufferlist &bl) const;
+    void decode(bufferlist::iterator &p);
   };
 
 private:
@@ -123,20 +111,8 @@ public:
     ceph_seq_t seq, last_issue;
     revoke_info() {}
     revoke_info(__u32 b, ceph_seq_t s, ceph_seq_t li) : before(b), seq(s), last_issue(li) {}
-    void encode(bufferlist& bl) const {
-      __u8 struct_v = 1;
-      ::encode(struct_v, bl);
-      ::encode(before, bl);
-      ::encode(seq, bl);
-      ::encode(last_issue, bl);
-    }
-    void decode(bufferlist::iterator& bl) {
-      __u8 struct_v;
-      ::decode(struct_v, bl);
-      ::decode(before, bl);
-      ::decode(seq, bl);
-      ::decode(last_issue, bl);
-    }
+    void encode(bufferlist& bl) const;
+    void decode(bufferlist::iterator& bl);
   };
 private:
   __u32 _pending, _issued;
@@ -326,28 +302,8 @@ public:
   }
 
   // serializers
-  void encode(bufferlist &bl) const {
-    __u8 struct_v = 1;
-    ::encode(struct_v, bl);
-    ::encode(last_sent, bl);
-    ::encode(last_issue_stamp, bl);
-
-    ::encode(_wanted, bl);
-    ::encode(_pending, bl);
-    ::encode(_revokes, bl);
-  }
-  void decode(bufferlist::iterator &bl) {
-    __u8 struct_v;
-    ::decode(struct_v, bl);
-    ::decode(last_sent, bl);
-    ::decode(last_issue_stamp, bl);
-
-    ::decode(_wanted, bl);
-    ::decode(_pending, bl);
-    ::decode(_revokes, bl);
-
-    _calc_issued();
-  }
+  void encode(bufferlist &bl) const;
+  void decode(bufferlist::iterator &bl);
   
 };