return data.length();
}
-int Object::read(uint64_t offset, uint64_t len, bufferlist &bl)
+ceph::bufferlist Object::read(uint64_t offset, uint64_t len)
{
- bl.substr_of(data, offset, len);
- return bl.length();
+ bufferlist ret;
+ ret.substr_of(data, offset, len);
+ return ret;
}
int Object::write(uint64_t offset, const bufferlist &src)
// interface for object data
size_t get_size() const;
- int read(uint64_t offset, uint64_t len, bufferlist &bl);
+ ceph::bufferlist read(uint64_t offset, uint64_t len);
int write(uint64_t offset, const bufferlist &bl);
int clone(Object *src, uint64_t srcoff, uint64_t len,
uint64_t dstoff);
l = o->get_size();
else if (offset + l > o->get_size())
l = o->get_size() - offset;
- ceph::bufferlist bl;
- if (int r = o->read(offset, l, bl); r < 0) {
- throw std::runtime_error("read");
- }
- return seastar::make_ready_future<ceph::bufferlist>(std::move(bl));
+ return seastar::make_ready_future<ceph::bufferlist>(o->read(offset, l));
}
seastar::future<ceph::bufferptr> CyanStore::get_attr(CollectionRef ch,