24 #ifndef __mqtt_connect_options_h
25 #define __mqtt_connect_options_h
27 #include "MQTTAsync.h"
63 MQTTAsync_connectOptions opts_;
111 const char* c_str(
const string& s) {
112 return s.empty() ? nullptr : s.c_str();
117 void update_c_struct();
123 connect_options(
const MQTTAsync_connectOptions& copts) : opts_(copts) {}
127 using ptr_t = std::shared_ptr<connect_options>;
145 int ver=MQTTVERSION_DEFAULT
202 #if defined(UNIT_TESTS)
203 const MQTTAsync_connectOptions& c_struct()
const {
return opts_; }
210 return std::chrono::seconds(opts_.keepAliveInterval);
219 return std::chrono::seconds(opts_.connectTimeout);
331 return std::chrono::seconds(opts_.minRetryInterval);
339 return std::chrono::seconds(opts_.maxRetryInterval);
374 opts_.keepAliveInterval = keepAliveInterval;
383 template <
class Rep,
class Period>
395 opts_.connectTimeout = timeout;
403 template <
class Rep,
class Period>
488 opts_.automaticReconnect =
to_int(on);
505 template <
class Rep1,
class Period1,
class Rep2,
class Period2>
507 const std::chrono::duration<Rep2, Period2>& maxRetryInterval) {
543 httpHeaders_ = httpHeaders;
544 opts_.httpHeaders = httpHeaders_.
empty() ? nullptr : httpHeaders_.
c_arr();
551 httpHeaders_ = std::move(httpHeaders);
552 opts_.httpHeaders = httpHeaders_.
empty() ? nullptr : httpHeaders_.
c_arr();
592 MQTTAsync_connectData data_;
606 void update_c_struct();
748 template <
class Rep,
class Period>
759 template <
class Rep,
class Period>
891 template <
class Rep1,
class Period1,
class Rep2,
class Period2>
893 const std::chrono::duration<Rep2, Period2>& maxRetryInterval) ->
self& {
Definition: async_client.h:108
const char * c_str() const
Definition: buffer_ref.h:257
const blob & to_string() const
Definition: buffer_ref.h:251
bool empty() const
Definition: buffer_ref.h:226
Definition: connect_options.h:587
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)
connect_data & operator=(const connect_data &rhs)
string get_user_name() const
Definition: connect_options.h:646
connect_data(string_ref userName)
binary_ref get_password() const
Definition: connect_options.h:651
Definition: connect_options.h:670
auto clean_session(bool on=true) -> self &
Definition: connect_options.h:737
auto ssl(ssl_options &&ssl) -> self &
Definition: connect_options.h:828
auto http_proxy(const string &httpProxy) -> self &
Definition: connect_options.h:943
auto token(const token_ptr &tok) -> self &
Definition: connect_options.h:836
connect_options_builder(int ver=MQTTVERSION_DEFAULT)
Definition: connect_options.h:682
auto clean_start(bool on=true) -> self &
Definition: connect_options.h:902
auto http_headers(const name_value_collection &headers) -> self &
Definition: connect_options.h:926
auto will(const will_options &will) -> self &
Definition: connect_options.h:792
static connect_options_builder v3()
Definition: connect_options.h:695
auto properties(mqtt::properties &&props) -> self &
Definition: connect_options.h:918
auto http_headers(name_value_collection &&headers) -> self &
Definition: connect_options.h:934
auto automatic_reconnect(bool on=true) -> self &
Definition: connect_options.h:880
auto https_proxy(const string &httpsProxy) -> self &
Definition: connect_options.h:952
connect_options_builder(const connect_options &opts)
Definition: connect_options.h:686
static connect_options_builder v5()
Definition: connect_options.h:702
auto max_inflight(int n) -> self &
Definition: connect_options.h:784
auto ssl(const ssl_options &ssl) -> self &
Definition: connect_options.h:818
auto connect_timeout(const std::chrono::duration< Rep, Period > &timeout) -> self &
Definition: connect_options.h:760
auto password(binary_ref password) -> self &
Definition: connect_options.h:775
connect_options_builder(const connect_options &&opts)
Definition: connect_options.h:690
static connect_options_builder v5_ws()
Definition: connect_options.h:728
connect_options finalize()
Definition: connect_options.h:960
auto will(const message &msg) -> self &
Definition: connect_options.h:808
auto keep_alive_interval(const std::chrono::duration< Rep, Period > &interval) -> self &
Definition: connect_options.h:749
auto properties(const mqtt::properties &props) -> self &
Definition: connect_options.h:910
auto automatic_reconnect(const std::chrono::duration< Rep1, Period1 > &minRetryInterval, const std::chrono::duration< Rep2, Period2 > &maxRetryInterval) -> self &
Definition: connect_options.h:892
auto will(will_options &&will) -> self &
Definition: connect_options.h:800
static connect_options_builder ws()
Definition: connect_options.h:715
auto servers(const_string_collection_ptr serverURIs) -> self &
Definition: connect_options.h:848
auto user_name(string_ref userName) -> self &
Definition: connect_options.h:768
auto mqtt_version(int ver) -> self &
Definition: connect_options.h:871
Definition: connect_options.h:49
const ssl_options & get_ssl_options() const
Definition: connect_options.h:267
void set_clean_start(bool cleanStart)
void set_user_name(string_ref userName)
void set_properties(properties &&props)
std::chrono::seconds get_connect_timeout() const
Definition: connect_options.h:218
void set_keep_alive_interval(const std::chrono::duration< Rep, Period > &interval)
Definition: connect_options.h:384
const properties & get_properties() const
Definition: connect_options.h:515
void set_http_headers(name_value_collection &&httpHeaders)
Definition: connect_options.h:550
static connect_options ws()
Definition: connect_options.h:175
void set_token(const token_ptr &tok)
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:506
void set_will(will_options &&will)
void set_clean_session(bool cleanSession)
void set_connect_timeout(int timeout)
Definition: connect_options.h:394
static connect_options v5_ws()
Definition: connect_options.h:186
std::shared_ptr< const connect_options > const_ptr_t
Definition: connect_options.h:129
bool is_clean_session() const
Definition: connect_options.h:289
void set_properties(const properties &props)
std::chrono::seconds get_max_retry_interval() const
Definition: connect_options.h:338
binary_ref get_password() const
Definition: connect_options.h:230
connect_options(string_ref userName, binary_ref password, int ver=MQTTVERSION_DEFAULT)
void set_automatic_reconnect(bool on)
Definition: connect_options.h:487
bool get_automatic_reconnect() const
Definition: connect_options.h:324
std::chrono::seconds get_min_retry_interval() const
Definition: connect_options.h:330
string get_https_proxy() const
Definition: connect_options.h:569
string get_user_name() const
Definition: connect_options.h:225
void set_keep_alive_interval(int keepAliveInterval)
Definition: connect_options.h:373
connect_options & operator=(const connect_options &opt)
void set_https_proxy(const string &httpsProxy)
connect_options & operator=(connect_options &&opt)
connect_options(const connect_options &opt)
void set_max_inflight(int n)
Definition: connect_options.h:423
const_message_ptr get_will_message() const
Definition: connect_options.h:255
void set_will_message(const_message_ptr msg)
Definition: connect_options.h:445
string get_will_topic() const
Definition: connect_options.h:248
std::shared_ptr< connect_options > ptr_t
Definition: connect_options.h:127
static connect_options v3()
int get_mqtt_version() const
Definition: connect_options.h:317
void set_servers(const_string_collection_ptr serverURIs)
void set_will(const will_options &will)
int get_max_inflight() const
Definition: connect_options.h:243
connect_options(int ver=MQTTVERSION_DEFAULT)
void set_ssl(const ssl_options &ssl)
static connect_options v5()
string get_password_str() const
Definition: connect_options.h:235
void set_connect_timeout(const std::chrono::duration< Rep, Period > &timeout)
Definition: connect_options.h:404
void set_mqtt_version(int mqttVersion)
const name_value_collection & get_http_headers() const
Definition: connect_options.h:535
void set_automatic_reconnect(int minRetryInterval, int maxRetryInterval)
token_ptr get_token() const
Definition: connect_options.h:300
std::chrono::seconds get_keep_alive_interval() const
Definition: connect_options.h:209
const will_options & get_will_options() const
Definition: connect_options.h:262
void set_ssl(ssl_options &&ssl)
void set_password(binary_ref password)
string get_http_proxy() const
Definition: connect_options.h:558
void set_http_proxy(const string &httpProxy)
const_string_collection_ptr get_servers() const
Definition: connect_options.h:308
properties & get_properties()
Definition: connect_options.h:520
void set_http_headers(const name_value_collection &httpHeaders)
Definition: connect_options.h:542
void set_will_message(const message &msg)
Definition: connect_options.h:438
bool is_clean_start() const
Definition: connect_options.h:295
Definition: string_collection.h:242
const MQTTAsync_nameValue * c_arr() const
Definition: string_collection.h:368
bool empty() const
Definition: string_collection.h:333
Definition: properties.h:256
Definition: ssl_options.h:46
Definition: will_options.h:50
const_message_ptr get_message() const
Definition: will_options.h:221
string get_topic() const
Definition: will_options.h:196
#define PAHO_MQTTPP_EXPORT
Definition: export.h:40
Definition: async_client.h:49
connect_options::ptr_t connect_options_ptr
Definition: connect_options.h:579
long to_seconds_count(const std::chrono::duration< Rep, Period > &dur)
Definition: types.h:127
string_collection::const_ptr_t const_string_collection_ptr
Definition: string_collection.h:234
bool to_bool(int n)
Definition: types.h:161
token::ptr_t token_ptr
Definition: token.h:506
std::string string
Definition: types.h:40
message::const_ptr_t const_message_ptr
Definition: message.h:368
int to_int(bool b)
Definition: types.h:167