From: Samuel Just Date: Tue, 3 Jul 2012 19:00:32 +0000 (-0700) Subject: librados: add assert_version as an operation on an ObjectOperation X-Git-Tag: v0.49~32 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bcfcf8efd5445db0a2a1b7b7223027d0b5a4752e;p=ceph.git librados: add assert_version as an operation on an ObjectOperation Signed-off-by: Samuel Just --- diff --git a/src/include/rados/librados.hpp b/src/include/rados/librados.hpp index 64101481b63c..e557451fcd8f 100644 --- a/src/include/rados/librados.hpp +++ b/src/include/rados/librados.hpp @@ -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; diff --git a/src/librados/librados.cc b/src/librados/librados.cc index 9fc2f4f2e5c1..dc2a75724b1d 100644 --- a/src/librados/librados.cc +++ b/src/librados/librados.cc @@ -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;