]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: add sparse_read() to the C++ bindings for an ObjectOperation
authorJosh Durgin <josh.durgin@inktank.com>
Sun, 12 May 2013 21:43:13 +0000 (14:43 -0700)
committerJosh Durgin <josh.durgin@inktank.com>
Mon, 13 May 2013 02:31:22 +0000 (19:31 -0700)
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 <josh.durgin@inktank.com>
src/include/rados/librados.hpp
src/librados/librados.cc

index 667239c3f492977b10239a5704f81247f7c96e33..0f09f3f13933c0179b63645e424446044c74bb34 100644 (file)
@@ -251,6 +251,11 @@ namespace librados
     void getxattr(const char *name, bufferlist *pbl, int *prval);
     void getxattrs(std::map<std::string, bufferlist> *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<uint64_t,uint64_t> *m,
+                    bufferlist *data_bl, int *prval);
     void tmap_get(bufferlist *pbl, int *prval);
 
     /**
index ea66f8dfccc72590cf071942c82f4d39119d81a6..3700a4d1be0ec35b5aea964ddc5fa9b5be4f51fb 100644 (file)
@@ -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<uint64_t,uint64_t> *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;