20#include <ignite/client/ignite_client_authenticator.h>
21#include <ignite/client/ignite_logger.h>
24#include <ignite/common/ignite_error.h>
26#include <initializer_list>
31#include <detail/config.h>
38class ignite_client_configuration {
51 ignite_client_configuration() =
default;
59 : m_endpoints(endpoints.begin(), endpoints.end()) {
60 check_endpoints_non_empty(m_endpoints);
69 : m_endpoints(std::move(endpoints)) {
70 check_endpoints_non_empty(m_endpoints);
80 [[nodiscard]]
const std::vector<std::string> &
get_endpoints()
const {
return m_endpoints; }
96 std::vector<std::string> endpoints0(endpoints.begin(), endpoints.end());
114 check_endpoints_non_empty(endpoints);
115 m_endpoints = std::move(endpoints);
123 [[nodiscard]]
const std::shared_ptr<ignite_logger> &
get_logger()
const {
return m_logger; }
132 void set_logger(std::shared_ptr<ignite_logger> logger) { m_logger = std::move(logger); }
182 if (heartbeat_interval.count() < 0) {
183 throw ignite_error(error::code::ILLEGAL_ARGUMENT,
"Heartbeat interval can not be negative: "
184 + std::to_string(heartbeat_interval.count()) +
" microseconds");
187 m_heartbeat_interval = heartbeat_interval;
197 [[nodiscard]] std::shared_ptr<ignite_client_authenticator>
get_authenticator()
const {
return m_authenticator; }
205 m_authenticator = std::move(authenticator);
236 return m_ssl_cert_file;
245 m_ssl_cert_file = ssl_cert_file;
254 return m_ssl_key_file;
263 m_ssl_key_file = ssl_key_file;
273 return m_ssl_ca_file;
283 m_ssl_ca_file = ssl_ca_file;
292 IGNITE_API
static void check_endpoints_non_empty(
const std::vector<std::string>& endpoints);
295 std::vector<std::string> m_endpoints{
"localhost"};
298 std::shared_ptr<ignite_logger> m_logger{};
301 std::shared_ptr<ignite_client_authenticator> m_authenticator{};
304 std::uint32_t m_connection_limit{0};
310 ssl_mode m_ssl_mode{ssl_mode::DISABLE};
313 std::string m_ssl_cert_file;
316 std::string m_ssl_key_file;
319 std::string m_ssl_ca_file;
void set_heartbeat_interval(std::chrono::microseconds heartbeat_interval)
Definition ignite_client_configuration.h:181
void set_ssl_mode(ssl_mode ssl_mode)
Definition ignite_client_configuration.h:226
static constexpr std::uint16_t DEFAULT_PORT
Definition ignite_client_configuration.h:43
const std::shared_ptr< ignite_logger > & get_logger() const
Definition ignite_client_configuration.h:123
static constexpr std::chrono::microseconds DEFAULT_HEARTBEAT_INTERVAL
Definition ignite_client_configuration.h:48
void set_endpoints(std::vector< std::string > endpoints)
Definition ignite_client_configuration.h:113
ignite_client_configuration(std::initializer_list< std::string_view > endpoints)
Definition ignite_client_configuration.h:58
const std::string & get_ssl_cert_file() const
Definition ignite_client_configuration.h:235
void set_ssl_ca_file(const std::string &ssl_ca_file)
Definition ignite_client_configuration.h:282
const std::vector< std::string > & get_endpoints() const
Definition ignite_client_configuration.h:80
std::shared_ptr< ignite_client_authenticator > get_authenticator() const
Definition ignite_client_configuration.h:197
void set_logger(std::shared_ptr< ignite_logger > logger)
Definition ignite_client_configuration.h:132
std::uint32_t get_connection_limit() const
Definition ignite_client_configuration.h:147
void set_connection_limit(std::uint32_t limit)
Definition ignite_client_configuration.h:156
void set_authenticator(std::shared_ptr< ignite_client_authenticator > authenticator)
Definition ignite_client_configuration.h:204
void set_ssl_cert_file(const std::string &ssl_cert_file)
Definition ignite_client_configuration.h:244
ssl_mode get_ssl_mode() const
Definition ignite_client_configuration.h:215
const std::string & get_ssl_ca_file() const
Definition ignite_client_configuration.h:272
std::chrono::microseconds get_heartbeat_interval() const
Definition ignite_client_configuration.h:172
ignite_client_configuration(std::vector< std::string > endpoints)
Definition ignite_client_configuration.h:68
void set_ssl_key_file(const std::string &ssl_key_file)
Definition ignite_client_configuration.h:262
void set_endpoints(std::initializer_list< std::string_view > endpoints)
Definition ignite_client_configuration.h:95
const std::string & get_ssl_key_file() const
Definition ignite_client_configuration.h:253
Definition ignite_error.h:35
ssl_mode
Definition ssl_mode.h:30