]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: add assert_version as an operation on an ObjectOperation
authorSamuel Just <sam.just@inktank.com>
Tue, 3 Jul 2012 19:00:32 +0000 (12:00 -0700)
committerSage Weil <sage@inktank.com>
Wed, 4 Jul 2012 14:32:23 +0000 (07:32 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/include/rados/librados.hpp
src/librados/librados.cc

index 64101481b63c42da4d477d32a8dd2055836fc61e..e557451fcd8f8c71637bded8c8567ce32241cce4 100644 (file)
@@ -136,6 +136,12 @@ namespace librados
     void src_cmpxattr(const std::string& src_oid,
                      const char *name, int op, uint64_t v);
     void exec(const char *cls, const char *method, bufferlist& inbl);
+    /**
+     * Guard operation with a check that object version == ver
+     *
+     * @param ver [in] version to check
+     */
+    void assert_version(uint64_t ver);
 
   protected:
     ObjectOperationImpl *impl;
index 9fc2f4f2e5c175cabc1e7c8ec763c0bb1ab17a0d..dc2a75724b1db5115ceb591a7d774e695cd4f8dd 100644 (file)
@@ -103,6 +103,12 @@ 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::ObjectOperation::assert_version(uint64_t ver)
+{
+  ::ObjectOperation *o = (::ObjectOperation *)impl;
+  o->assert_version(ver);
+}
+
 void librados::ObjectOperation::exec(const char *cls, const char *method, bufferlist& inbl)
 {
   ::ObjectOperation *o = (::ObjectOperation *)impl;