]> git.proxmox.com Git - ceph.git/blob - ceph/src/tools/rbd_mirror/image_map/SimplePolicy.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / tools / rbd_mirror / image_map / SimplePolicy.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_RBD_MIRROR_IMAGE_MAP_SIMPLE_POLICY_H
5 #define CEPH_RBD_MIRROR_IMAGE_MAP_SIMPLE_POLICY_H
6
7 #include "Policy.h"
8
9 namespace rbd {
10 namespace mirror {
11 namespace image_map {
12
13 class SimplePolicy : public Policy {
14 public:
15 static SimplePolicy *create(librados::IoCtx &ioctx) {
16 return new SimplePolicy(ioctx);
17 }
18
19 protected:
20 SimplePolicy(librados::IoCtx &ioctx);
21
22 std::string do_map(const InstanceToImageMap& map,
23 const std::string &global_image_id) override;
24
25 void do_shuffle_add_instances(
26 const InstanceToImageMap& map, size_t image_count,
27 std::set<std::string> *remap_global_image_ids) override;
28
29 private:
30 size_t calc_images_per_instance(const InstanceToImageMap& map,
31 size_t image_count);
32
33 };
34
35 } // namespace image_map
36 } // namespace mirror
37 } // namespace rbd
38
39 #endif // CEPH_RBD_MIRROR_IMAGE_MAP_SIMPLE_POLICY_H