24#ifndef __mqtt_client_h
25#define __mqtt_client_h
49 std::chrono::milliseconds timeout_;
64 std::shared_ptr<T> ptr(
const T& val) {
65 return std::shared_ptr<T>(
const_cast<T*
>(&val), [](T*) {});
71 void connected(
const string& cause)
override {
74 void connection_lost(
const string& cause)
override {
93 using ptr_t = std::shared_ptr<client>;
112 const string& serverURI,
const string& clientId,
125 client(
const string& serverURI,
const string& clientId,
const string& persistDir);
141 const string& serverURI,
const string& clientId,
int maxBufferedMessages,
157 const string& serverURI,
const string& clientId,
int maxBufferedMessages,
158 const string& persistDir
174 const string& serverURI,
const string& clientId,
const create_options& opts,
212 template <
class Rep,
class Period>
213 void disconnect(
const std::chrono::duration<Rep, Period>& to) {
230 virtual std::chrono::milliseconds
get_timeout()
const {
return timeout_; }
248 return topic(cli_, top, qos, retained);
275 string_ref top,
const void* payload,
size_t n,
int qos,
bool retained
277 if (!cli_.
publish(std::move(top), payload, n, qos, retained)->wait_for(timeout_))
288 if (!cli_.
publish(std::move(top), payload, n)->wait_for(timeout_))
296 if (!cli_.
publish(msg)->wait_for(timeout_))
318 timeout_ = std::chrono::milliseconds(timeoutMS);
324 template <
class Rep,
class Period>
348 const string& topicFilter,
int qos,
362 const std::vector<subscribe_options>& opts = std::vector<subscribe_options>(),
375 const std::vector<subscribe_options>& opts = std::vector<subscribe_options>(),
430 template <
typename Rep,
class Period>
443 template <
class Clock,
class Duration>
Definition async_client.h:121
bool try_consume_message(const_message_ptr *msg) override
void stop_consuming() override
connect_options get_connect_options() const
Definition async_client.h:522
bool try_consume_message_for(const_message_ptr *msg, const std::chrono::duration< Rep, Period > &relTime)
Definition async_client.h:943
std::function< bool(connect_data &)> update_connection_handler
Definition async_client.h:135
delivery_token_ptr publish(string_ref topic, const void *payload, size_t n, int qos, bool retained, const properties &props=properties()) override
string get_client_id() const override
Definition async_client.h:501
bool try_consume_message_until(const_message_ptr *msg, const std::chrono::time_point< Clock, Duration > &absTime)
Definition async_client.h:989
const_message_ptr consume_message() override
string get_server_uri() const override
Definition async_client.h:506
void set_update_connection_handler(update_connection_handler cb)
bool is_connected() const override
Definition async_client.h:530
void start_consuming() override
virtual void connected(const string &)
Definition callback.h:61
virtual void connection_lost(const string &)
Definition callback.h:65
virtual void delivery_complete(delivery_token_ptr)
Definition callback.h:74
virtual void message_arrived(const_message_ptr)
Definition callback.h:69
virtual subscribe_response subscribe(const string &topicFilter, const subscribe_options &opts=subscribe_options(), const properties &props=properties())
std::shared_ptr< client > ptr_t
Definition client.h:93
virtual void stop_consuming()
Definition client.h:407
bool try_consume_message_until(const_message_ptr *msg, const std::chrono::time_point< Clock, Duration > &absTime)
Definition client.h:444
virtual bool try_consume_message(const_message_ptr *msg)
Definition client.h:420
virtual void publish(const message &msg)
Definition client.h:306
void set_update_connection_handler(update_connection_handler cb)
Definition client.h:261
virtual void disconnect(int timeoutMS)
virtual void publish(const_message_ptr msg)
Definition client.h:295
virtual subscribe_response subscribe(const string_collection &topicFilters, const qos_collection &qos, const std::vector< subscribe_options > &opts=std::vector< subscribe_options >(), const properties &props=properties())
client(const string &serverURI, const string &clientId, int maxBufferedMessages, const string &persistDir)
virtual void disconnect()
virtual const_message_ptr consume_message()
Definition client.h:413
bool try_consume_message_for(const_message_ptr *msg, const std::chrono::duration< Rep, Period > &relTime)
Definition client.h:431
virtual void set_callback(callback &cb)
void disconnect(const std::chrono::duration< Rep, Period > &to)
Definition client.h:213
virtual string get_server_uri() const
Definition client.h:225
virtual void start_consuming()
Definition client.h:401
virtual connect_response connect(connect_options opts)
virtual subscribe_response subscribe(const string &topicFilter, int qos, const subscribe_options &opts=subscribe_options(), const properties &props=properties())
virtual unsubscribe_response unsubscribe(const string_collection &topicFilters, const properties &props=properties())
async_client::update_connection_handler update_connection_handler
Definition client.h:98
virtual topic get_topic(const string &top, int qos=message::DFLT_QOS, bool retained=message::DFLT_RETAINED)
Definition client.h:245
void set_timeout(const std::chrono::duration< Rep, Period > &to)
Definition client.h:325
connect_options get_connect_options() const
Definition client.h:236
virtual std::chrono::milliseconds get_timeout() const
Definition client.h:230
virtual subscribe_response subscribe(const string_collection &topicFilters, const std::vector< subscribe_options > &opts=std::vector< subscribe_options >(), const properties &props=properties())
virtual bool is_connected() const
Definition client.h:255
client(const string &serverURI, const string &clientId, iclient_persistence *persistence=nullptr)
virtual unsubscribe_response unsubscribe(const string &topicFilter, const properties &props=properties())
virtual void publish(string_ref top, const void *payload, size_t n, int qos, bool retained)
Definition client.h:274
virtual connect_response connect()
async_client::qos_collection qos_collection
Definition client.h:95
client(const string &serverURI, const string &clientId, int maxBufferedMessages, iclient_persistence *persistence=nullptr)
virtual connect_response reconnect()
virtual void publish(string_ref top, const void *payload, size_t n)
Definition client.h:287
client(const string &serverURI, const string &clientId, const string &persistDir)
virtual ~client()
Definition client.h:180
virtual string get_client_id() const
Definition client.h:220
virtual void set_timeout(int timeoutMS)
Definition client.h:317
client(const string &serverURI, const string &clientId, const create_options &opts, iclient_persistence *persistence=nullptr)
Definition connect_options.h:50
Definition server_response.h:73
Definition create_options.h:60
std::vector< int > qos_collection
Definition iasync_client.h:66
Definition iclient_persistence.h:70
static constexpr bool DFLT_RETAINED
Definition message.h:62
static constexpr int DFLT_QOS
Definition message.h:60
Definition properties.h:293
Definition string_collection.h:45
Definition subscribe_options.h:49
Definition exception.h:196
Definition server_response.h:172
#define PAHO_MQTTPP_EXPORT
Definition export.h:40
Definition async_client.h:60
client::ptr_t client_ptr
Definition client.h:452
std::chrono::milliseconds to_milliseconds(const std::chrono::duration< Rep, Period > &dur)
Definition types.h:84
message::const_ptr_t const_message_ptr
Definition message.h:378
long to_milliseconds_count(const std::chrono::duration< Rep, Period > &dur)
Definition types.h:95
delivery_token::ptr_t delivery_token_ptr
Definition delivery_token.h:127
Definition server_response.h:131