3 #include "cls/version/cls_version_client.h"
4 #include "include/rados/librados.hpp"
7 using namespace librados;
10 void cls_version_set(librados::ObjectWriteOperation& op, obj_version& objv)
13 cls_version_set_op call;
16 op.exec("version", "set", in);
19 void cls_version_inc(librados::ObjectWriteOperation& op)
22 cls_version_inc_op call;
24 op.exec("version", "inc", in);
27 void cls_version_inc(librados::ObjectWriteOperation& op, obj_version& objv, VersionCond cond)
30 cls_version_inc_op call;
37 call.conds.push_back(c);
40 op.exec("version", "inc_conds", in);
43 void cls_version_check(librados::ObjectOperation& op, obj_version& objv, VersionCond cond)
46 cls_version_check_op call;
53 call.conds.push_back(c);
56 op.exec("version", "check_conds", in);
59 class VersionReadCtx : public ObjectOperationCompletion {
62 explicit VersionReadCtx(obj_version *_objv) : objv(_objv) {}
63 void handle_completion(int r, bufferlist& outbl) override {
65 cls_version_read_ret ret;
67 bufferlist::iterator iter = outbl.begin();
70 } catch (buffer::error& err) {
71 // nothing we can do about it atm
77 void cls_version_read(librados::ObjectReadOperation& op, obj_version *objv)
80 op.exec("version", "read", inbl, new VersionReadCtx(objv));
83 int cls_version_read(librados::IoCtx& io_ctx, string& oid, obj_version *ver)
86 int r = io_ctx.exec(oid, "version", "read", in, out);
90 cls_version_read_ret ret;
92 bufferlist::iterator iter = out.begin();
94 } catch (buffer::error& err) {