blob: 6c48915f60c0508be9dc7ff8645a6bb6513ef4eb (
plain) (
blame)
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
35
36
37
38
39
|
#pragma once
#include <Coordination/KeeperConstants.h>
namespace DB
{
/// these values cannot be reordered or removed, only new values can be added
enum class KeeperFeatureFlag : size_t
{
FILTERED_LIST = 0,
MULTI_READ,
CHECK_NOT_EXISTS,
};
class KeeperFeatureFlags
{
public:
KeeperFeatureFlags();
explicit KeeperFeatureFlags(std::string feature_flags_);
/// backwards compatibility
void fromApiVersion(KeeperApiVersion keeper_api_version);
bool isEnabled(KeeperFeatureFlag feature) const;
void setFeatureFlags(std::string feature_flags_);
const std::string & getFeatureFlags() const;
void enableFeatureFlag(KeeperFeatureFlag feature);
void disableFeatureFlag(KeeperFeatureFlag feature);
void logFlags(Poco::Logger * log) const;
private:
std::string feature_flags;
};
}
|