]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: specify read return value pointers in ObjectReadOperation methods
authorSage Weil <sage.weil@dreamhost.com>
Thu, 12 Jan 2012 23:42:59 +0000 (15:42 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Thu, 12 Jan 2012 23:44:33 +0000 (15:44 -0800)
This lets librados do the work of parsing the reply from compound
operations, instead of requiring callers to have knowledge of the internal
encodings.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/include/rados/librados.hpp
src/librados.cc

index 03c8580b2919d092bdf47ccdb172c9f503d8c756..ca0868e851ca0cd6945785f75acba234ffbd1727 100644 (file)
@@ -186,10 +186,10 @@ namespace librados
     ObjectReadOperation() {}
     ~ObjectReadOperation() {}
 
-    void stat();
-    void getxattr(const char *name);
-    void getxattrs();
-    void read(size_t off, uint64_t len);
+    void stat(uint64_t *psize = NULL, int *prval = NULL);
+    void getxattr(const char *name, bufferlist *pbl = NULL, int *prval = NULL);
+    void getxattrs(std::map<std::string, bufferlist> *pattrs = NULL, int *prval = NULL);
+    void read(size_t off, uint64_t len, bufferlist *pbl = NULL, int *prval = NULL);
   };
 
 
index 59ba318542dd0dd9d882bbf387523bcb63aaaa44..99c5a7b2542e625f319a922071927964bdde9464 100644 (file)
@@ -183,28 +183,28 @@ void librados::ObjectOperation::src_cmpxattr(const std::string& src_oid,
   o->src_cmpxattr(oid, CEPH_NOSNAP, name, bl, op, CEPH_OSD_CMPXATTR_MODE_U64);
 }
 
-void librados::ObjectReadOperation::stat()
+void librados::ObjectReadOperation::stat(uint64_t *psize, int *prval)
 {
   ::ObjectOperation *o = (::ObjectOperation *)impl;
-  o->add_op(CEPH_OSD_OP_STAT);
+  o->stat(psize, prval);
 }
 
-void librados::ObjectReadOperation::read(size_t off, uint64_t len)
+void librados::ObjectReadOperation::read(size_t off, uint64_t len, bufferlist *pbl, int *prval)
 {
   ::ObjectOperation *o = (::ObjectOperation *)impl;
-  o->read(off, len);
+  o->read(off, len, pbl, prval);
 }
 
-void librados::ObjectReadOperation::getxattr(const char *name)
+void librados::ObjectReadOperation::getxattr(const char *name, bufferlist *pbl, int *prval)
 {
   ::ObjectOperation *o = (::ObjectOperation *)impl;
-  o->getxattr(name);
+  o->getxattr(name, pbl, prval);
 }
 
-void librados::ObjectReadOperation::getxattrs()
+void librados::ObjectReadOperation::getxattrs(map<string, bufferlist> *pattrs, int *prval)
 {
   ::ObjectOperation *o = (::ObjectOperation *)impl;
-  o->getxattrs();
+  o->getxattrs(pattrs, prval);
 }
 
 void librados::ObjectWriteOperation::create(bool exclusive)
@@ -2486,7 +2486,7 @@ int librados::RadosClient::_notify_ack(IoCtxImpl& io, const object_t& oid,
   ::ObjectOperation rd;
   prepare_assert_ops(&io, &rd);
   rd.notify_ack(notify_id, ver);
-  objecter->read(oid, io.oloc, rd, io.snap_seq, NULL, 0, 0, 0);
+  objecter->read(oid, io.oloc, rd, io.snap_seq, (bufferlist*)NULL, 0, 0, 0);
 
   return 0;
 }