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 <cstdint>
8#include <optional>
9#include <string>
10
11namespace data::cassandra {
12
18
19 std::string keyspace_;
20 std::optional<std::string> tablePrefix_;
21 uint16_t replicationFactor_;
22 Settings settings_;
23
24public:
30 explicit SettingsProvider(util::config::ObjectView const& cfg);
31
35 [[nodiscard]] Settings
36 getSettings() const;
37
41 [[nodiscard]] std::string
43 {
44 return keyspace_;
45 }
46
50 [[nodiscard]] std::optional<std::string>
52 {
53 return tablePrefix_;
54 }
55
59 [[nodiscard]] uint16_t
61 {
62 return replicationFactor_;
63 }
64
65private:
66 [[nodiscard]] std::optional<std::string>
67 parseOptionalCertificate() const;
68
69 [[nodiscard]] Settings
70 parseSettings() const;
71};
72
73} // namespace data::cassandra
Settings getSettings() const
Definition SettingsProvider.cpp:33
std::optional< std::string > getTablePrefix() const
Definition SettingsProvider.hpp:51
std::string getKeyspace() const
Definition SettingsProvider.hpp:42
uint16_t getReplicationFactor() const
Definition SettingsProvider.hpp:60
SettingsProvider(util::config::ObjectView const &cfg)
Create a settings provider from the specified config.
Definition SettingsProvider.cpp:23
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