// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab #ifndef CEPH_INCLUDE_ENCODING_BTREE_H #define CEPH_INCLUDE_ENCODING_BTREE_H #include "include/cpp-btree/btree_map.h" template inline void encode(const btree::btree_map& m, bufferlist& bl) { __u32 n = (__u32)(m.size()); encode(n, bl); for (typename btree::btree_map::const_iterator p = m.begin(); p != m.end(); ++p) { encode(p->first, bl); encode(p->second, bl); } } template inline void encode(const btree::btree_map& m, bufferlist& bl, uint64_t features) { __u32 n = (__u32)(m.size()); encode(n, bl); for (typename btree::btree_map::const_iterator p = m.begin(); p != m.end(); ++p) { encode(p->first, bl, features); encode(p->second, bl, features); } } template inline void decode(btree::btree_map& m, bufferlist::iterator& p) { __u32 n; decode(n, p); m.clear(); while (n--) { T k; decode(k, p); decode(m[k], p); } } template inline void encode_nohead(const btree::btree_map& m, bufferlist& bl) { for (typename btree::btree_map::const_iterator p = m.begin(); p != m.end(); ++p) { encode(p->first, bl); encode(p->second, bl); } } template inline void decode_nohead(int n, btree::btree_map& m, bufferlist::iterator& p) { m.clear(); while (n--) { T k; decode(k, p); decode(m[k], p); } } #endif