summaryrefslogtreecommitdiffstats
path: root/src/librados/librados_util.h
blob: ab9c461f42afafefc3b01f66df4e195df902ccdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <cstdint>
#include "acconfig.h"
#include "include/rados/librados.h"
#include "IoCtxImpl.h"

#ifdef WITH_LTTNG
#include "tracing/librados.h"
#else
#define tracepoint(...)
#endif

uint8_t get_checksum_op_type(rados_checksum_type_t type);
int get_op_flags(int flags);
int translate_flags(int flags);

struct librados::ObjListCtx {
  librados::IoCtxImpl dupctx;
  librados::IoCtxImpl *ctx;
  Objecter::NListContext *nlc;
  bool legacy_list_api;

  ObjListCtx(IoCtxImpl *c, Objecter::NListContext *nl, bool legacy=false)
    : nlc(nl),
      legacy_list_api(legacy) {
    // Get our own private IoCtxImpl so that namespace setting isn't
    // changed by caller between uses.
    ctx = &dupctx;
    dupctx.dup(*c);
  }
  ~ObjListCtx() {
    ctx = NULL;
    delete nlc;
  }
};