${PROJECT_SOURCE_DIR}/src/mds/FSMap.cc
${PROJECT_SOURCE_DIR}/src/mds/FSMapUser.cc
${PROJECT_SOURCE_DIR}/src/mds/MDSMap.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/MDSAuthCaps.cc
${PROJECT_SOURCE_DIR}/src/msg/msg_types.cc
${PROJECT_SOURCE_DIR}/src/msg/Message.cc
${PROJECT_SOURCE_DIR}/src/mon/PGMap.cc
return out;
}
+ostream &operator<<(ostream &out, const MDSCapAuth &auth)
+{
+ out << "MDSCapAuth(" << auth.match << "readable="
+ << auth.readable << ", writeable=" << auth.writeable << ")";
+ return out;
+}
};
WRITE_CLASS_ENCODER(MDSCapMatch)
+struct MDSCapAuth {
+ MDSCapAuth() {}
+ MDSCapAuth(MDSCapMatch m, bool r, bool w) :
+ match(m), readable(r), writeable(w) {}
+
+ const MDSCapAuth& operator=(const MDSCapAuth& m) {
+ match = m.match;
+ readable = m.readable;
+ writeable = m.writeable;
+ return *this;
+ }
+
+ void encode(ceph::buffer::list& bl) const {
+ ENCODE_START(1, 1, bl);
+ encode(match, bl);
+ encode(readable, bl);
+ encode(writeable, bl);
+ ENCODE_FINISH(bl);
+ }
+
+ void decode(ceph::buffer::list::const_iterator& p) {
+ DECODE_START(1, p);
+ decode(match, p);
+ decode(readable, p);
+ decode(writeable, p);
+ DECODE_FINISH(p);
+ }
+
+ MDSCapMatch match;
+ bool readable;
+ bool writeable;
+};
+WRITE_CLASS_ENCODER(MDSCapAuth)
+
struct MDSCapGrant {
MDSCapGrant(const MDSCapSpec &spec_, const MDSCapMatch &match_,
boost::optional<std::string> n)
};
std::ostream &operator<<(std::ostream &out, const MDSCapMatch &match);
+std::ostream &operator<<(std::ostream &out, const MDSCapAuth &auth);
std::ostream &operator<<(std::ostream &out, const MDSCapSpec &spec);
std::ostream &operator<<(std::ostream &out, const MDSCapGrant &grant);
std::ostream &operator<<(std::ostream &out, const MDSAuthCaps &cap);