]> git.proxmox.com Git - ceph.git/blob - ceph/src/librbd/api/Config.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / librbd / api / Config.h
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 #ifndef CEPH_LIBRBD_API_CONFIG_H
5 #define CEPH_LIBRBD_API_CONFIG_H
6
7 #include "include/rbd/librbd.hpp"
8 #include "include/rados/librados_fwd.hpp"
9
10 struct ConfigProxy;
11
12 namespace librbd {
13
14 class ImageCtx;
15
16 namespace api {
17
18 template <typename ImageCtxT = librbd::ImageCtx>
19 class Config {
20 public:
21 static bool is_option_name(librados::IoCtx& io_ctx, const std::string &name);
22 static int list(librados::IoCtx& io_ctx,
23 std::vector<config_option_t> *options);
24
25 static bool is_option_name(ImageCtxT *image_ctx, const std::string &name);
26 static int list(ImageCtxT *image_ctx, std::vector<config_option_t> *options);
27
28 static void apply_pool_overrides(librados::IoCtx& io_ctx,
29 ConfigProxy* config);
30 };
31
32 } // namespace api
33 } // namespace librbd
34
35 extern template class librbd::api::Config<librbd::ImageCtx>;
36
37 #endif // CEPH_LIBRBD_API_CONFIG_H