diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/rgw/rgw_zone_features.h | |
parent | Initial commit. (diff) | |
download | ceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip |
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/rgw/rgw_zone_features.h')
-rw-r--r-- | src/rgw/rgw_zone_features.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/rgw/rgw_zone_features.h b/src/rgw/rgw_zone_features.h new file mode 100644 index 000000000..5e1a435d4 --- /dev/null +++ b/src/rgw/rgw_zone_features.h @@ -0,0 +1,47 @@ +// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- +// vim: ts=8 sw=2 smarttab ft=cpp + +/* N.B., this header defines fundamental serialized types. Do not + * include files which can only be compiled in radosgw or OSD + * contexts (e.g., rgw_sal.h, rgw_common.h) */ + +#pragma once + +#include <string> +#include <boost/container/flat_set.hpp> + +namespace rgw::zone_features { + +// zone feature names +inline constexpr std::string_view resharding = "resharding"; +inline constexpr std::string_view compress_encrypted = "compress-encrypted"; + +// static list of features supported by this release +inline constexpr std::initializer_list<std::string_view> supported = { + resharding, + compress_encrypted, +}; + +inline constexpr bool supports(std::string_view feature) { + for (auto i : supported) { + if (feature.compare(i) == 0) { + return true; + } + } + return false; +} + +// static list of features enabled by default on new zonegroups +inline constexpr std::initializer_list<std::string_view> enabled = { + resharding, +}; + + +// enable string_view overloads for find() contains() etc +struct feature_less : std::less<std::string_view> { + using is_transparent = std::true_type; +}; + +using set = boost::container::flat_set<std::string, feature_less>; + +} // namespace rgw::zone_features |