22#include "data/cassandra/impl/ManagedObject.hpp"
23#include "util/log/Logger.hpp"
36namespace data::cassandra::impl {
44 static constexpr std::size_t kDEFAULT_CONNECTION_TIMEOUT = 10000;
45 static constexpr uint32_t kDEFAULT_MAX_WRITE_REQUESTS_OUTSTANDING = 10'000;
46 static constexpr uint32_t kDEFAULT_MAX_READ_REQUESTS_OUTSTANDING = 100'000;
47 static constexpr std::size_t kDEFAULT_BATCH_SIZE = 20;
53 std::string contactPoints =
"127.0.0.1";
54 std::optional<uint16_t> port;
68 std::chrono::milliseconds
connectionTimeout = std::chrono::milliseconds{kDEFAULT_CONNECTION_TIMEOUT};
77 uint32_t
threads = std::thread::hardware_concurrency();
98 std::optional<std::string>
username = std::nullopt;
101 std::optional<std::string>
password = std::nullopt;
132 setupConnection(
Settings const& settings);
141 setupCertificate(
Settings const& settings);
144 setupCredentials(
Settings const& settings);
Definition Cluster.hpp:124
Definition ManagedObject.hpp:28
A simple thread-safe logger for the channel specified in the constructor.
Definition Logger.hpp:111
Represents the configuration of a secure connection bundle.
Definition Cluster.hpp:60
Bundles all cassandra settings in one place.
Definition Cluster.hpp:43
std::chrono::milliseconds requestTimeout
Request timeout specified in milliseconds.
Definition Cluster.hpp:71
std::chrono::milliseconds connectionTimeout
Connect timeout specified in milliseconds.
Definition Cluster.hpp:68
std::optional< std::string > password
Password to match the username
Definition Cluster.hpp:101
std::optional< std::string > username
Username/login.
Definition Cluster.hpp:98
uint32_t threads
The number of threads for the driver to pool.
Definition Cluster.hpp:77
uint32_t maxReadRequestsOutstanding
The maximum number of outstanding read requests at any given moment.
Definition Cluster.hpp:83
uint32_t maxWriteRequestsOutstanding
The maximum number of outstanding write requests at any given moment.
Definition Cluster.hpp:80
std::optional< std::string > certificate
SSL certificate.
Definition Cluster.hpp:95
uint32_t coreConnectionsPerHost
The number of connection per host to always have active.
Definition Cluster.hpp:86
std::variant< ContactPoints, SecureConnectionBundle > connectionInfo
Connection information; either ContactPoints or SecureConnectionBundle.
Definition Cluster.hpp:74
bool enableLog
Enables or disables cassandra driver logger.
Definition Cluster.hpp:65
std::size_t writeBatchSize
Size of batches when writing.
Definition Cluster.hpp:89
std::optional< uint32_t > queueSizeIO
Size of the IO queue.
Definition Cluster.hpp:92
static Settings defaultSettings()
Returns the default settings.
Definition Cluster.hpp:118
Settings withContactPoints(std::string_view contactPoints)
Creates a new Settings object as a copy of the current one with overridden contact points.
Definition Cluster.hpp:107