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;
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;
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()
{
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);
}
{
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);