From: Sage Weil Date: Fri, 21 Sep 2012 15:53:21 +0000 (-0700) Subject: mds: uninline Capability encoders X-Git-Tag: v0.58~100^2~49 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c058285dbe54d089a40ff64a7a79cd0ddc9d6dbe;p=ceph.git mds: uninline Capability encoders Signed-off-by: Sage Weil --- diff --git a/src/Makefile.am b/src/Makefile.am index ad1b5dab64e..b40ffff922b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 index 00000000000..0491d52db5e --- /dev/null +++ b/src/mds/Capability.cc @@ -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 + * + * 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(); +} diff --git a/src/mds/Capability.h b/src/mds/Capability.h index 6fe67f45b1d..4008a835978 100644 --- a/src/mds/Capability.h +++ b/src/mds/Capability.h @@ -21,6 +21,8 @@ #include "common/config.h" +#include "mdstypes.h" + /* Capability protocol notes. @@ -57,6 +59,10 @@ 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); };