]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: modify src_cmpxattr interface
authorYehuda Sadeh <yehuda@hq.newdream.net>
Thu, 4 Aug 2011 23:12:47 +0000 (16:12 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Thu, 4 Aug 2011 23:12:47 +0000 (16:12 -0700)
src/include/rados/librados.hpp
src/librados.cc
src/testradospp.cc

index e0a709de565c59bebf85a69328750a89daecf1e9..2acda1d406f6aed45a95a946b3c3f194296e6d7f 100644 (file)
@@ -112,10 +112,12 @@ namespace librados
     ObjectOperation();
     virtual ~ObjectOperation();
 
-    void cmpxattr(const char *name, uint8_t op, const bufferlist& bl);
+    void cmpxattr(const char *name, uint8_t op, const bufferlist& val);
     void cmpxattr(const char *name, uint8_t op, uint64_t v);
     void src_cmpxattr(const std::string& src_oid,
-                     const char *name, const bufferlist& val, int op, int mode);
+                     const char *name, int op, const bufferlist& val);
+    void src_cmpxattr(const std::string& src_oid,
+                     const char *name, int op, uint64_t v);
 
   protected:
     ObjectOperationImpl *impl;
index 79c2ebad3083014f78fc99a6a633b4682f908f52..6957bbc0aa9c9f3d4413e102ab7b547779302efa 100644 (file)
@@ -146,6 +146,24 @@ void librados::ObjectOperation::cmpxattr(const char *name, uint8_t op, uint64_t
   o->cmpxattr(name, op, CEPH_OSD_CMPXATTR_MODE_U64, bl);
 }
 
+void librados::ObjectOperation::src_cmpxattr(const std::string& src_oid,
+                                        const char *name, int op, const bufferlist& v)
+{
+  ::ObjectOperation *o = (::ObjectOperation *)impl;
+  object_t oid(src_oid);
+  o->src_cmpxattr(oid, CEPH_NOSNAP, name, v, op, CEPH_OSD_CMPXATTR_MODE_STRING);
+}
+
+void librados::ObjectOperation::src_cmpxattr(const std::string& src_oid,
+                                        const char *name, int op, uint64_t val)
+{
+  ::ObjectOperation *o = (::ObjectOperation *)impl;
+  object_t oid(src_oid);
+  bufferlist bl;
+  ::encode(val, bl);
+  o->src_cmpxattr(oid, CEPH_NOSNAP, name, bl, op, CEPH_OSD_CMPXATTR_MODE_U64);
+}
+
 void librados::ObjectReadOperation::stat()
 {
   ::ObjectOperation *o = (::ObjectOperation *)impl;
@@ -242,15 +260,6 @@ void librados::ObjectWriteOperation::clone_range(uint64_t dst_off,
   o->clone_range(src_oid, src_off, len, dst_off);
 }
 
-void librados::ObjectOperation::src_cmpxattr(const std::string& src_oid,
-                                        const char *name, const bufferlist& v, int op, int mode)
-{
-  ::ObjectOperation *o = (::ObjectOperation *)impl;
-  object_t oid(src_oid);
-  o->src_cmpxattr(oid, CEPH_NOSNAP, name, v, op, mode);
-}
-
-
 librados::WatchCtx::
 ~WatchCtx()
 {
index a07b33b222c718742e450e889f4b359e7b5ff8df..24fbb86896b7e839f2cd0d412c48a19288828ff9 100644 (file)
@@ -270,7 +270,7 @@ int main(int argc, const char **argv)
   const char *oidb = "bar-clone";
   {
     ObjectWriteOperation o;
-    o.src_cmpxattr(oid, "foo", val, CEPH_OSD_CMPXATTR_OP_EQ, CEPH_OSD_CMPXATTR_MODE_STRING);
+    o.src_cmpxattr(oid, "foo", CEPH_OSD_CMPXATTR_OP_EQ, val);
     io_ctx.locator_set_key(oid);
     o.write_full(val);
     r = io_ctx.operate(oidb, &o, &bl2);
@@ -279,7 +279,7 @@ int main(int argc, const char **argv)
   }
   {
     ObjectWriteOperation o;
-    o.src_cmpxattr(oid, "foo", val, CEPH_OSD_CMPXATTR_OP_NE, CEPH_OSD_CMPXATTR_MODE_STRING);
+    o.src_cmpxattr(oid, "foo", CEPH_OSD_CMPXATTR_OP_NE, val);
     io_ctx.locator_set_key(oid);
     o.write_full(val);
     r = io_ctx.operate(oidb, &o, &bl2);