// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- // vim: ts=8 sw=2 smarttab #include #include #include #include #include #include "include/buffer.h" namespace ceph::os { struct Object : public boost::intrusive_ref_counter< Object, boost::thread_unsafe_counter> { using bufferlist = ceph::bufferlist; bufferlist data; std::map xattr; bufferlist omap_header; std::map omap; typedef boost::intrusive_ptr Ref; Object() = default; // interface for object data size_t get_size() const; int read(uint64_t offset, uint64_t len, bufferlist &bl); int write(uint64_t offset, const bufferlist &bl); int clone(Object *src, uint64_t srcoff, uint64_t len, uint64_t dstoff); int truncate(uint64_t offset); void encode(bufferlist& bl) const; void decode(bufferlist::const_iterator& p); }; }