]>
git.proxmox.com Git - ceph.git/blob - ceph/src/mds/Capability.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 * Ceph - scalable distributed file system
6 * Copyright (C) 2004-2006 Sage Weil <sage@newdream.net>
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
15 #include "Capability.h"
17 #include "common/Formatter.h"
24 void Capability::Export::encode(bufferlist
&bl
) const
26 ENCODE_START(2, 2, bl
);
30 ::encode(pending
, bl
);
31 ::encode(client_follows
, bl
);
34 ::encode(last_issue_stamp
, bl
);
38 void Capability::Export::decode(bufferlist::iterator
&p
)
40 DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, p
);
45 ::decode(client_follows
, p
);
48 ::decode(last_issue_stamp
, p
);
52 void Capability::Export::dump(Formatter
*f
) const
54 f
->dump_unsigned("cap_id", cap_id
);
55 f
->dump_unsigned("wanted", wanted
);
56 f
->dump_unsigned("issued", issued
);
57 f
->dump_unsigned("pending", pending
);
58 f
->dump_unsigned("client_follows", client_follows
);
59 f
->dump_unsigned("seq", seq
);
60 f
->dump_unsigned("migrate_seq", mseq
);
61 f
->dump_stream("last_issue_stamp") << last_issue_stamp
;
64 void Capability::Export::generate_test_instances(list
<Capability::Export
*>& ls
)
66 ls
.push_back(new Export
);
67 ls
.push_back(new Export
);
68 ls
.back()->wanted
= 1;
69 ls
.back()->issued
= 2;
70 ls
.back()->pending
= 3;
71 ls
.back()->client_follows
= 4;
73 ls
.back()->last_issue_stamp
= utime_t(6, 7);
76 void Capability::Import::encode(bufferlist
&bl
) const
78 ENCODE_START(1, 1, bl
);
80 ::encode(issue_seq
, bl
);
85 void Capability::Import::decode(bufferlist::iterator
&bl
)
89 ::decode(issue_seq
, bl
);
94 void Capability::Import::dump(Formatter
*f
) const
96 f
->dump_unsigned("cap_id", cap_id
);
97 f
->dump_unsigned("issue_seq", issue_seq
);
98 f
->dump_unsigned("migrate_seq", mseq
);
102 * Capability::revoke_info
105 void Capability::revoke_info::encode(bufferlist
& bl
) const
107 ENCODE_START(2, 2, bl
)
108 ::encode(before
, bl
);
110 ::encode(last_issue
, bl
);
114 void Capability::revoke_info::decode(bufferlist::iterator
& bl
)
116 DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl
);
117 ::decode(before
, bl
);
119 ::decode(last_issue
, bl
);
123 void Capability::revoke_info::dump(Formatter
*f
) const
125 f
->dump_unsigned("before", before
);
126 f
->dump_unsigned("seq", seq
);
127 f
->dump_unsigned("last_issue", last_issue
);
130 void Capability::revoke_info::generate_test_instances(list
<Capability::revoke_info
*>& ls
)
132 ls
.push_back(new revoke_info
);
133 ls
.push_back(new revoke_info
);
134 ls
.back()->before
= 1;
136 ls
.back()->last_issue
= 3;
144 void Capability::encode(bufferlist
& bl
) const
146 ENCODE_START(2, 2, bl
)
147 ::encode(last_sent
, bl
);
148 ::encode(last_issue_stamp
, bl
);
150 ::encode(_wanted
, bl
);
151 ::encode(_pending
, bl
);
152 ::encode(_revokes
, bl
);
156 void Capability::decode(bufferlist::iterator
&bl
)
158 DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl
)
159 ::decode(last_sent
, bl
);
160 ::decode(last_issue_stamp
, bl
);
162 ::decode(_wanted
, bl
);
163 ::decode(_pending
, bl
);
164 ::decode(_revokes
, bl
);
170 void Capability::dump(Formatter
*f
) const
172 f
->dump_unsigned("last_sent", last_sent
);
173 f
->dump_unsigned("last_issue_stamp", last_issue_stamp
);
174 f
->dump_unsigned("wanted", _wanted
);
175 f
->dump_unsigned("pending", _pending
);
177 f
->open_array_section("revokes");
178 for (list
<revoke_info
>::const_iterator p
= _revokes
.begin(); p
!= _revokes
.end(); ++p
) {
179 f
->open_object_section("revoke");
186 void Capability::generate_test_instances(list
<Capability
*>& ls
)
188 ls
.push_back(new Capability
);
189 ls
.push_back(new Capability
);
190 ls
.back()->last_sent
= 11;
191 ls
.back()->last_issue_stamp
= utime_t(12, 13);
192 ls
.back()->_wanted
= 14;
193 ls
.back()->_pending
= 15;
194 ls
.back()->_revokes
.push_back(revoke_info());
195 ls
.back()->_revokes
.back().before
= 16;
196 ls
.back()->_revokes
.back().seq
= 17;
197 ls
.back()->_revokes
.back().last_issue
= 18;
198 ls
.back()->_revokes
.push_back(revoke_info());
199 ls
.back()->_revokes
.back().before
= 19;
200 ls
.back()->_revokes
.back().seq
= 20;
201 ls
.back()->_revokes
.back().last_issue
= 21;