#include "mdstypes.h"
#include "common/Formatter.h"
+/*
+ * default_file_layout
+ */
+
void default_file_layout::encode(bufferlist &bl) const
{
ENCODE_START(2, 2, bl);
ls.back()->layout.fl_object_stripe_unit = 8;
ls.back()->layout.fl_pg_pool = 9;
}
+
+
+/*
+ * frag_info_t
+ */
+
+void frag_info_t::encode(bufferlist &bl) const
+{
+ ENCODE_START(2, 2, bl);
+ ::encode(version, bl);
+ ::encode(mtime, bl);
+ ::encode(nfiles, bl);
+ ::encode(nsubdirs, bl);
+ ENCODE_FINISH(bl);
+}
+
+void frag_info_t::decode(bufferlist::iterator &bl)
+{
+ DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
+ ::decode(version, bl);
+ ::decode(mtime, bl);
+ ::decode(nfiles, bl);
+ ::decode(nsubdirs, bl);
+ DECODE_FINISH(bl);
+}
+
+void frag_info_t::dump(Formatter *f) const
+{
+ f->dump_unsigned("version", version);
+ f->dump_stream("mtime") << mtime;
+ f->dump_unsigned("num_files", nfiles);
+ f->dump_unsigned("num_subdirs", nsubdirs);
+}
+
+void frag_info_t::generate_test_instances(list<frag_info_t*>& ls)
+{
+ ls.push_back(new frag_info_t);
+ ls.push_back(new frag_info_t);
+ ls.back()->version = 1;
+ ls.back()->mtime = utime_t(2, 3);
+ ls.back()->nfiles = 4;
+ ls.back()->nsubdirs = 5;
+}
+
+ostream& operator<<(ostream &out, const frag_info_t &f)
+{
+ if (f == frag_info_t())
+ return out << "f()";
+ out << "f(v" << f.version;
+ if (f.mtime != utime_t())
+ out << " m" << f.mtime;
+ if (f.nfiles || f.nsubdirs)
+ out << " " << f.size() << "=" << f.nfiles << "+" << f.nsubdirs;
+ out << ")";
+ return out;
+}
+
+
nsubdirs += other.nsubdirs;
}
- void encode(bufferlist &bl) const {
- __u8 v = 1;
- ::encode(v, bl);
-
- ::encode(version, bl);
- ::encode(mtime, bl);
- ::encode(nfiles, bl);
- ::encode(nsubdirs, bl);
- }
- void decode(bufferlist::iterator &bl) {
- __u8 v;
- ::decode(v, bl);
-
- ::decode(version, bl);
- ::decode(mtime, bl);
- ::decode(nfiles, bl);
- ::decode(nsubdirs, bl);
- }
+ void encode(bufferlist &bl) const;
+ void decode(bufferlist::iterator& bl);
+ void dump(Formatter *f) const;
+ static void generate_test_instances(list<frag_info_t*>& ls);
};
WRITE_CLASS_ENCODER(frag_info_t)
return memcmp(&l, &r, sizeof(l)) == 0;
}
-inline ostream& operator<<(ostream &out, const frag_info_t &f) {
- if (f == frag_info_t())
- return out << "f()";
- out << "f(v" << f.version;
- if (f.mtime != utime_t())
- out << " m" << f.mtime;
- if (f.nfiles || f.nsubdirs)
- out << " " << f.size() << "=" << f.nfiles << "+" << f.nsubdirs;
- out << ")";
- return out;
-}
+ostream& operator<<(ostream &out, const frag_info_t &f);
+
struct nest_info_t : public scatter_info_t {
// this frag + children