inline void encode(snapid_t i, bufferlist &bl) { encode(i.val, bl); }
inline void decode(snapid_t &i, bufferlist::iterator &p) { decode(i.val, p); }
+template<>
+struct denc_traits<snapid_t> {
+ enum { supported = 2 };
+ enum { featured = false };
+ enum { bounded = true };
+ static void bound_encode(const snapid_t o, size_t& p) {
+ denc(o.val, p);
+ }
+ static void encode(const snapid_t &o, buffer::list::contiguous_appender& p) {
+ denc(o.val, p);
+ }
+ static void decode(snapid_t& o, buffer::ptr::iterator &p) {
+ denc(o.val, p);
+ }
+};
+
inline ostream& operator<<(ostream& out, snapid_t s) {
if (s == CEPH_NOSNAP)
return out << "head";