24#ifndef __mqtt_connect_options_h
25#define __mqtt_connect_options_h
52 static constexpr MQTTAsync_connectOptions DFLT_C_STRUCT
53 MQTTAsync_connectOptions_initializer;
56 static constexpr MQTTAsync_connectOptions DFLT_C_STRUCT5
57 MQTTAsync_connectOptions_initializer5;
60 static constexpr MQTTAsync_connectOptions DFLT_C_STRUCT_WS
61 MQTTAsync_connectOptions_initializer_ws;
64 static constexpr MQTTAsync_connectOptions DFLT_C_STRUCT5_WS
65 MQTTAsync_connectOptions_initializer5_ws;
68 MQTTAsync_connectOptions opts_;
114 const char* c_str(
const string& s) {
return s.empty() ? nullptr : s.c_str(); }
118 void update_c_struct();
124 connect_options(
const MQTTAsync_connectOptions& copts) : opts_(copts) {}
128 using ptr_t = std::shared_ptr<connect_options>;
196#if defined(UNIT_TESTS)
197 const MQTTAsync_connectOptions& c_struct()
const {
return opts_; }
204 return std::chrono::seconds(opts_.keepAliveInterval);
213 return std::chrono::seconds(opts_.connectTimeout);
319 return std::chrono::seconds(opts_.minRetryInterval);
327 return std::chrono::seconds(opts_.maxRetryInterval);
362 opts_.keepAliveInterval = keepAliveInterval;
371 template <
class Rep,
class Period>
389 template <
class Rep,
class Period>
488 template <
class Rep1,
class Period1,
class Rep2,
class Period2>
490 const std::chrono::duration<Rep1, Period1>& minRetryInterval,
491 const std::chrono::duration<Rep2, Period2>& maxRetryInterval
527 httpHeaders_ = httpHeaders;
528 opts_.httpHeaders = httpHeaders_.
empty() ? nullptr : httpHeaders_.
c_arr();
535 httpHeaders_ = std::move(httpHeaders);
536 opts_.httpHeaders = httpHeaders_.
empty() ? nullptr : httpHeaders_.
c_arr();
574 MQTTAsync_connectData_initializer;
577 MQTTAsync_connectData data_{DFLT_C_STRUCT};
591 void update_c_struct();
733 template <
class Rep,
class Period>
744 template <
class Rep,
class Period>
877 template <
class Rep1,
class Period1,
class Rep2,
class Period2>
879 const std::chrono::duration<Rep1, Period1>& minRetryInterval,
880 const std::chrono::duration<Rep2, Period2>& maxRetryInterval
Definition async_client.h:121
const char * c_str() const
Definition buffer_ref.h:264
const blob & to_string() const
Definition buffer_ref.h:258
bool empty() const
Definition buffer_ref.h:233
Definition connect_options.h:571
connect_data(const connect_data &other)
void set_user_name(string_ref userName)
connect_data(string_ref userName, binary_ref password)
void set_password(binary_ref password)
string get_user_name() const
Definition connect_options.h:631
connect_data & operator=(const connect_data &rhs)
connect_data(string_ref userName)
binary_ref get_password() const
Definition connect_options.h:636
Definition connect_options.h:655
auto clean_session(bool on=true) -> self &
Definition connect_options.h:722
auto ssl(ssl_options &&ssl) -> self &
Definition connect_options.h:814
auto http_proxy(const string &httpProxy) -> self &
Definition connect_options.h:931
auto token(const token_ptr &tok) -> self &
Definition connect_options.h:822
connect_options_builder(int ver=MQTTVERSION_DEFAULT)
Definition connect_options.h:667
auto clean_start(bool on=true) -> self &
Definition connect_options.h:890
auto http_headers(const name_value_collection &headers) -> self &
Definition connect_options.h:914
auto will(const will_options &will) -> self &
Definition connect_options.h:778
static connect_options_builder v3()
Definition connect_options.h:680
auto properties(mqtt::properties &&props) -> self &
Definition connect_options.h:906
auto http_headers(name_value_collection &&headers) -> self &
Definition connect_options.h:922
auto automatic_reconnect(bool on=true) -> self &
Definition connect_options.h:866
auto https_proxy(const string &httpsProxy) -> self &
Definition connect_options.h:940
connect_options_builder(const connect_options &opts)
Definition connect_options.h:671
static connect_options_builder v5()
Definition connect_options.h:687
auto max_inflight(int n) -> self &
Definition connect_options.h:770
auto ssl(const ssl_options &ssl) -> self &
Definition connect_options.h:804
auto connect_timeout(const std::chrono::duration< Rep, Period > &timeout) -> self &
Definition connect_options.h:745
auto password(binary_ref password) -> self &
Definition connect_options.h:761
connect_options_builder(const connect_options &&opts)
Definition connect_options.h:675
static connect_options_builder v5_ws()
Definition connect_options.h:713
connect_options finalize()
Definition connect_options.h:948
auto will(const message &msg) -> self &
Definition connect_options.h:794
auto keep_alive_interval(const std::chrono::duration< Rep, Period > &interval) -> self &
Definition connect_options.h:734
auto properties(const mqtt::properties &props) -> self &
Definition connect_options.h:898
auto automatic_reconnect(const std::chrono::duration< Rep1, Period1 > &minRetryInterval, const std::chrono::duration< Rep2, Period2 > &maxRetryInterval) -> self &
Definition connect_options.h:878
auto will(will_options &&will) -> self &
Definition connect_options.h:786
static connect_options_builder ws()
Definition connect_options.h:700
auto servers(const_string_collection_ptr serverURIs) -> self &
Definition connect_options.h:834
auto user_name(string_ref userName) -> self &
Definition connect_options.h:753
auto mqtt_version(int ver) -> self &
Definition connect_options.h:857
Definition connect_options.h:50
const will_options & get_will_options() const
Definition connect_options.h:250
void set_clean_start(bool cleanStart)
void set_user_name(string_ref userName)
void set_properties(properties &&props)
connect_options & operator=(connect_options &&opt)
std::chrono::seconds get_connect_timeout() const
Definition connect_options.h:212
void set_keep_alive_interval(const std::chrono::duration< Rep, Period > &interval)
Definition connect_options.h:372
void set_http_headers(name_value_collection &&httpHeaders)
Definition connect_options.h:534
static connect_options ws()
Definition connect_options.h:173
void set_token(const token_ptr &tok)
connect_options & operator=(const connect_options &opt)
connect_options(connect_options &&opt)
void set_automatic_reconnect(const std::chrono::duration< Rep1, Period1 > &minRetryInterval, const std::chrono::duration< Rep2, Period2 > &maxRetryInterval)
Definition connect_options.h:489
void set_will(will_options &&will)
void set_clean_session(bool cleanSession)
void set_connect_timeout(int timeout)
Definition connect_options.h:382
static connect_options v5_ws()
Definition connect_options.h:182
const name_value_collection & get_http_headers() const
Definition connect_options.h:521
std::shared_ptr< const connect_options > const_ptr_t
Definition connect_options.h:130
bool is_clean_session() const
Definition connect_options.h:277
void set_properties(const properties &props)
std::chrono::seconds get_max_retry_interval() const
Definition connect_options.h:326
binary_ref get_password() const
Definition connect_options.h:224
connect_options(string_ref userName, binary_ref password, int ver=MQTTVERSION_DEFAULT)
const properties & get_properties() const
Definition connect_options.h:501
void set_automatic_reconnect(bool on)
Definition connect_options.h:472
bool get_automatic_reconnect() const
Definition connect_options.h:312
std::chrono::seconds get_min_retry_interval() const
Definition connect_options.h:318
string get_https_proxy() const
Definition connect_options.h:553
string get_user_name() const
Definition connect_options.h:219
void set_keep_alive_interval(int keepAliveInterval)
Definition connect_options.h:361
void set_https_proxy(const string &httpsProxy)
connect_options(const connect_options &opt)
void set_max_inflight(int n)
Definition connect_options.h:409
const_message_ptr get_will_message() const
Definition connect_options.h:245
void set_will_message(const_message_ptr msg)
Definition connect_options.h:429
string get_will_topic() const
Definition connect_options.h:240
std::shared_ptr< connect_options > ptr_t
Definition connect_options.h:128
static connect_options v3()
Definition connect_options.h:159
int get_mqtt_version() const
Definition connect_options.h:305
void set_servers(const_string_collection_ptr serverURIs)
void set_will(const will_options &will)
int get_max_inflight() const
Definition connect_options.h:235
connect_options(int ver=MQTTVERSION_DEFAULT)
const ssl_options & get_ssl_options() const
Definition connect_options.h:255
void set_ssl(const ssl_options &ssl)
static connect_options v5()
Definition connect_options.h:164
string get_password_str() const
Definition connect_options.h:229
void set_connect_timeout(const std::chrono::duration< Rep, Period > &timeout)
Definition connect_options.h:390
properties & get_properties()
Definition connect_options.h:506
void set_mqtt_version(int mqttVersion)
void set_automatic_reconnect(int minRetryInterval, int maxRetryInterval)
token_ptr get_token() const
Definition connect_options.h:288
std::chrono::seconds get_keep_alive_interval() const
Definition connect_options.h:203
void set_ssl(ssl_options &&ssl)
void set_password(binary_ref password)
string get_http_proxy() const
Definition connect_options.h:542
void set_http_proxy(const string &httpProxy)
const_string_collection_ptr get_servers() const
Definition connect_options.h:296
void set_http_headers(const name_value_collection &httpHeaders)
Definition connect_options.h:526
void set_will_message(const message &msg)
Definition connect_options.h:424
bool is_clean_start() const
Definition connect_options.h:283
Definition string_collection.h:267
bool empty() const
Definition string_collection.h:352
const MQTTAsync_nameValue * c_arr() const
Definition string_collection.h:387
Definition properties.h:293
Definition ssl_options.h:47
Definition will_options.h:50
const_message_ptr get_message() const
Definition will_options.h:223
string get_topic() const
Definition will_options.h:198
#define PAHO_MQTTPP_EXPORT
Definition export.h:40
Definition async_client.h:60
connect_options::ptr_t connect_options_ptr
Definition connect_options.h:563
long to_seconds_count(const std::chrono::duration< Rep, Period > &dur)
Definition types.h:73
string_collection::const_ptr_t const_string_collection_ptr
Definition string_collection.h:259
bool to_bool(int n)
Definition types.h:107
token::ptr_t token_ptr
Definition token.h:513
std::string string
Definition types.h:43
message::const_ptr_t const_message_ptr
Definition message.h:378
int to_int(bool b)
Definition types.h:113