Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
SettingsProvider.hpp
1#pragma once
2
3#include "data/cassandra/Types.hpp"
4#include "data/cassandra/impl/Cluster.hpp"
5#include "util/config/ObjectView.hpp"
6
7#include <chrono>
8#include <cstdint>
9#include <optional>
10#include <string>
11
12namespace data::cassandra {
13
19
20 std::string keyspace_;
21 std::optional<std::string> tablePrefix_;
22 uint16_t replicationFactor_;
23 std::chrono::milliseconds initialRetryDelay_;
24 std::chrono::milliseconds maxRetryDelay_;
25 Settings settings_;
26
27public:
33 explicit SettingsProvider(util::config::ObjectView const& cfg);
34
38 [[nodiscard]] Settings
39 getSettings() const;
40
44 [[nodiscard]] std::string
46 {
47 return keyspace_;
48 }
49
53 [[nodiscard]] std::optional<std::string>
55 {
56 return tablePrefix_;
57 }
58
62 [[nodiscard]] uint16_t
64 {
65 return replicationFactor_;
66 }
67
71 [[nodiscard]] std::chrono::milliseconds
73 {
74 return initialRetryDelay_;
75 }
76
80 [[nodiscard]] std::chrono::milliseconds
82 {
83 return maxRetryDelay_;
84 }
85
86private:
87 [[nodiscard]] std::optional<std::string>
88 parseOptionalCertificate() const;
89
90 [[nodiscard]] Settings
91 parseSettings() const;
92};
93
94} // namespace data::cassandra
Settings getSettings() const
Definition SettingsProvider.cpp:40
std::chrono::milliseconds getMaxRetryDelay() const
Definition SettingsProvider.hpp:81
std::optional< std::string > getTablePrefix() const
Definition SettingsProvider.hpp:54
std::chrono::milliseconds getInitialRetryDelay() const
Definition SettingsProvider.hpp:72
std::string getKeyspace() const
Definition SettingsProvider.hpp:45
uint16_t getReplicationFactor() const
Definition SettingsProvider.hpp:63
SettingsProvider(util::config::ObjectView const &cfg)
Create a settings provider from the specified config.
Definition SettingsProvider.cpp:24
Provides a view into a subset of configuration data defined by a prefix.
Definition ObjectView.hpp:21
This namespace implements a wrapper for the Cassandra C++ driver.
Definition CassandraBackendFamily.hpp:47