From: Josh Durgin Date: Sun, 12 May 2013 21:43:13 +0000 (-0700) Subject: librados: add sparse_read() to the C++ bindings for an ObjectOperation X-Git-Tag: v0.63~38^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=442f0588a52edefca40c497a909de7f27e300ba1;p=ceph.git librados: add sparse_read() to the C++ bindings for an ObjectOperation This will allow it to be used with general aio_operate() so we don't have to add new versions of each operation when we want to add new per-op arguments, like flags, namespaces, or explicit snapshot contexts/ids. Signed-off-by: Josh Durgin --- diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index 667239c3f492..0f09f3f13933 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -251,6 +251,11 @@ namespace librados void getxattr(const char *name, bufferlist *pbl, int *prval); void getxattrs(std::map *pattrs, int *prval); void read(size_t off, uint64_t len, bufferlist *pbl, int *prval); + /** + * see aio_sparse_read() + */ + void sparse_read(uint64_t off, uint64_t len, std::map *m, + bufferlist *data_bl, int *prval); void tmap_get(bufferlist *pbl, int *prval); /** diff --git a/src/librados/librados.cc b/src/librados/librados.cc index ea66f8dfccc7..3700a4d1be0e 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -145,6 +145,14 @@ void librados::ObjectReadOperation::read(size_t off, uint64_t len, bufferlist *p o->read(off, len, pbl, prval); } +void librados::ObjectReadOperation::sparse_read(uint64_t off, uint64_t len, + std::map *m, + bufferlist *data_bl, int *prval) +{ + ::ObjectOperation *o = (::ObjectOperation *)impl; + o->sparse_read(off, len, m, data_bl, prval); +} + void librados::ObjectReadOperation::tmap_get(bufferlist *pbl, int *prval) { ::ObjectOperation *o = (::ObjectOperation *)impl;