PoolAsyncCompletionImpl *pc;
};
+ enum ObjectOperationFlags {
+ OP_EXCL = 1,
+ OP_FAILOK = 2,
+ };
+
/*
* ObjectOperation : compount object operation
* Batch multiple object operations into a single request, to be applied
virtual ~ObjectOperation();
size_t size();
+ void set_op_flags(ObjectOperationFlags flags);
void cmpxattr(const char *name, uint8_t op, const bufferlist& val);
void cmpxattr(const char *name, uint8_t op, uint64_t v);
return o->size();
}
+void librados::ObjectOperation::set_op_flags(ObjectOperationFlags flags)
+{
+ int rados_flags = 0;
+ if (flags & OP_EXCL)
+ rados_flags |= CEPH_OSD_OP_FLAG_EXCL;
+ if (flags & OP_FAILOK)
+ rados_flags |= CEPH_OSD_OP_FLAG_FAILOK;
+
+ ::ObjectOperation *o = (::ObjectOperation *)impl;
+ o->set_last_op_flags(rados_flags);
+}
+
void librados::ObjectOperation::cmpxattr(const char *name, uint8_t op, const bufferlist& v)
{
::ObjectOperation *o = (::ObjectOperation *)impl;