![]() |
Paho C++
1.0
The Paho MQTT C++ Client Library
|
Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation to run in the background. More...
#include <async_client.h>
Public Types | |
| using | ptr_t = std::shared_ptr< async_client > |
| Smart/shared pointer for an object of this class. | |
| using | consumer_queue_type = std::unique_ptr< thread_queue< const_message_ptr >> |
| Type for a thread-safe queue to consume messages synchronously. | |
Public Types inherited from mqtt::iasync_client | |
| using | qos_collection = std::vector< int > |
| Type for a collection of QOS values. | |
Public Member Functions | |
| async_client (const string &serverURI, const string &clientId, const string &persistDir) | |
| Create an async_client that can be used to communicate with an MQTT server. More... | |
| async_client (const string &serverURI, const string &clientId, iclient_persistence *persistence=nullptr) | |
| Create an async_client that can be used to communicate with an MQTT server. More... | |
| async_client (const string &serverURI, const string &clientId, int maxBufferedMessages, const string &persistDir) | |
| Create an async_client that can be used to communicate with an MQTT server, which allows for off-line message buffering. More... | |
| async_client (const string &serverURI, const string &clientId, int maxBufferedMessages, iclient_persistence *persistence=nullptr) | |
| Create an async_client that can be used to communicate with an MQTT server, which allows for off-line message buffering. More... | |
| ~async_client () override | |
| Destructor. | |
| token_ptr | connect () override |
| Connects to an MQTT server using the default options. More... | |
| token_ptr | connect (connect_options options) override |
| Connects to an MQTT server using the provided connect options. More... | |
| token_ptr | connect (connect_options options, void *userContext, iaction_listener &cb) override |
| Connects to an MQTT server using the specified options. More... | |
| token_ptr | connect (void *userContext, iaction_listener &cb) override |
| token_ptr | reconnect () override |
| Reconnects the client using options from the previous connect. More... | |
| token_ptr | disconnect () override |
| Disconnects from the server. More... | |
| token_ptr | disconnect (disconnect_options opts) override |
| Disconnects from the server. More... | |
| token_ptr | disconnect (int timeout) override |
| Disconnects from the server. More... | |
| template<class Rep , class Period > | |
| token_ptr | disconnect (const std::chrono::duration< Rep, Period > &timeout) |
| Disconnects from the server. More... | |
| token_ptr | disconnect (int timeout, void *userContext, iaction_listener &cb) override |
| Disconnects from the server. More... | |
| template<class Rep , class Period > | |
| token_ptr | disconnect (const std::chrono::duration< Rep, Period > &timeout, void *userContext, iaction_listener &cb) |
| Disconnects from the server. More... | |
| token_ptr | disconnect (void *userContext, iaction_listener &cb) override |
| Disconnects from the server. More... | |
| delivery_token_ptr | get_pending_delivery_token (int msgID) const override |
| Returns the delivery token for the specified message ID. More... | |
| std::vector< delivery_token_ptr > | get_pending_delivery_tokens () const override |
| Returns the delivery tokens for any outstanding publish operations. More... | |
| string | get_client_id () const override |
| Returns the client ID used by this client. More... | |
| string | get_server_uri () const override |
| Returns the address of the server used by this client. More... | |
| bool | is_connected () const override |
| Determines if this client is currently connected to the server. More... | |
| delivery_token_ptr | publish (string_ref topic, const void *payload, size_t n, int qos, bool retained) override |
| Publishes a message to a topic on the server. More... | |
| delivery_token_ptr | publish (string_ref topic, const void *payload, size_t n) override |
| Publishes a message to a topic on the server. More... | |
| delivery_token_ptr | publish (string_ref topic, binary_ref payload, int qos, bool retained) override |
| Publishes a message to a topic on the server. More... | |
| delivery_token_ptr | publish (string_ref topic, binary_ref payload) override |
| Publishes a message to a topic on the server. More... | |
| delivery_token_ptr | publish (string_ref topic, const void *payload, size_t n, int qos, bool retained, void *userContext, iaction_listener &cb) override |
| Publishes a message to a topic on the server. More... | |
| delivery_token_ptr | publish (const_message_ptr msg) override |
| Publishes a message to a topic on the server Takes an Message message and delivers it to the server at the requested quality of service. More... | |
| delivery_token_ptr | publish (const_message_ptr msg, void *userContext, iaction_listener &cb) override |
| Publishes a message to a topic on the server. More... | |
| void | set_callback (callback &cb) override |
| Sets a callback listener to use for events that happen asynchronously. More... | |
| void | disable_callbacks () override |
| Stops callbacks. More... | |
| token_ptr | subscribe (const_string_collection_ptr topicFilters, const qos_collection &qos) override |
| Subscribe to multiple topics, each of which may include wildcards. More... | |
| token_ptr | subscribe (const_string_collection_ptr topicFilters, const qos_collection &qos, void *userContext, iaction_listener &cb) override |
| Subscribes to multiple topics, each of which may include wildcards. More... | |
| token_ptr | subscribe (const string &topicFilter, int qos) override |
| Subscribe to a topic, which may include wildcards. More... | |
| token_ptr | subscribe (const string &topicFilter, int qos, void *userContext, iaction_listener &cb) override |
| Subscribe to a topic, which may include wildcards. More... | |
| token_ptr | unsubscribe (const string &topicFilter) override |
| Requests the server unsubscribe the client from a topic. More... | |
| token_ptr | unsubscribe (const_string_collection_ptr topicFilters) override |
| Requests the server unsubscribe the client from one or more topics. More... | |
| token_ptr | unsubscribe (const_string_collection_ptr topicFilters, void *userContext, iaction_listener &cb) override |
| Requests the server unsubscribe the client from one or more topics. More... | |
| token_ptr | unsubscribe (const string &topicFilter, void *userContext, iaction_listener &cb) override |
| Requests the server unsubscribe the client from a topics. More... | |
| void | start_consuming () |
| Start consuming messages. More... | |
| void | stop_consuming () |
| Stop consuming messages. More... | |
| const_message_ptr | consume_message () |
| Read the next message from the queue. More... | |
| bool | try_consume_message (const_message_ptr *msg) |
| Try to read the next message from the queue without blocking. More... | |
| template<typename Rep , class Period > | |
| bool | try_consume_message_for (const_message_ptr *msg, const std::chrono::duration< Rep, Period > &relTime) |
| Waits a limited time for a message to arrive. More... | |
| template<class Clock , class Duration > | |
| bool | try_consume_message_until (const_message_ptr *msg, const std::chrono::time_point< Clock, Duration > &absTime) |
| Waits until a specific time for a message to occur. More... | |
Public Member Functions inherited from mqtt::iasync_client | |
| virtual | ~iasync_client () |
| Virtual destructor. | |
Friends | |
| class | token |
| Manage internal list of active tokens. | |
Lightweight client for talking to an MQTT server using non-blocking methods that allow an operation to run in the background.
| mqtt::async_client::async_client | ( | const string & | serverURI, |
| const string & | clientId, | ||
| const string & | persistDir | ||
| ) |
Create an async_client that can be used to communicate with an MQTT server.
This uses file-based persistence in the specified directory.
| serverURI | the address of the server to connect to, specified as a URI. |
| clientId | a client identifier that is unique on the server being connected to |
| persistDir | The directory to use for persistence data |
| mqtt::async_client::async_client | ( | const string & | serverURI, |
| const string & | clientId, | ||
| iclient_persistence * | persistence = nullptr |
||
| ) |
Create an async_client that can be used to communicate with an MQTT server.
This allows the caller to specify a user-defined persistence object, or use no persistence.
| serverURI | the address of the server to connect to, specified as a URI. |
| clientId | a client identifier that is unique on the server being connected to |
| persistence | The user persistence structure. If this is null, then no persistence is used. |
| mqtt::async_client::async_client | ( | const string & | serverURI, |
| const string & | clientId, | ||
| int | maxBufferedMessages, | ||
| const string & | persistDir | ||
| ) |
Create an async_client that can be used to communicate with an MQTT server, which allows for off-line message buffering.
This uses file-based persistence in the specified directory.
| serverURI | the address of the server to connect to, specified as a URI. |
| clientId | a client identifier that is unique on the server being connected to |
| maxBufferedMessages | the maximum number of messages allowed to be buffered while not connected |
| persistDir | The directory to use for persistence data |
| mqtt::async_client::async_client | ( | const string & | serverURI, |
| const string & | clientId, | ||
| int | maxBufferedMessages, | ||
| iclient_persistence * | persistence = nullptr |
||
| ) |
Create an async_client that can be used to communicate with an MQTT server, which allows for off-line message buffering.
This allows the caller to specify a user-defined persistence object, or use no persistence.
| serverURI | the address of the server to connect to, specified as a URI. |
| clientId | a client identifier that is unique on the server being connected to |
| maxBufferedMessages | the maximum number of messages allowed to be buffered while not connected |
| persistence | The user persistence structure. If this is null, then no persistence is used. |
|
overridevirtual |
Connects to an MQTT server using the default options.
| exception | for non security related problems |
| security_exception | for security related problems |
Implements mqtt::iasync_client.
|
overridevirtual |
Connects to an MQTT server using the provided connect options.
| options | a set of connection parameters that override the defaults. |
| exception | for non security related problems |
| security_exception | for security related problems |
Implements mqtt::iasync_client.
|
overridevirtual |
Connects to an MQTT server using the specified options.
| options | a set of connection parameters that override the defaults. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | callback listener that will be notified when the connect completes. |
| exception | for non security related problems |
| security_exception | for security related problems |
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | callback listener that will be notified when the connect completes. |
| exception | for non security related problems |
| security_exception | for security related problems |
Implements mqtt::iasync_client.
|
inline |
Read the next message from the queue.
This blocks until a new message arrives.
|
overridevirtual |
Stops callbacks.
This is not normally called by the application. It should be used cautiously as it may cause the application to lose messages.
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
Disconnects from the server.
| exception | for problems encountered while disconnecting |
Implements mqtt::iasync_client.
|
overridevirtual |
Disconnects from the server.
| opts | Options for disconnecting. |
| exception | for problems encountered while disconnecting |
Implements mqtt::iasync_client.
|
overridevirtual |
Disconnects from the server.
| timeout | the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. |
| exception | for problems encountered while disconnecting |
Implements mqtt::iasync_client.
|
inline |
Disconnects from the server.
| timeout | the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. |
| exception | for problems encountered while disconnecting |
|
overridevirtual |
Disconnects from the server.
| timeout | the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | callback listener that will be notified when the disconnect completes. |
| exception | for problems encountered while disconnecting |
Implements mqtt::iasync_client.
|
inline |
Disconnects from the server.
| timeout | the amount of time in milliseconds to allow for existing work to finish before disconnecting. A value of zero or less means the client will not quiesce. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | callback listener that will be notified when the disconnect completes. |
| exception | for problems encountered while disconnecting |
|
inlineoverridevirtual |
Disconnects from the server.
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | callback listener that will be notified when the disconnect completes. |
| exception | for problems encountered while disconnecting |
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
Returns the client ID used by this client.
Implements mqtt::iasync_client.
|
overridevirtual |
Returns the delivery token for the specified message ID.
Implements mqtt::iasync_client.
|
overridevirtual |
Returns the delivery tokens for any outstanding publish operations.
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
Returns the address of the server used by this client.
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
Determines if this client is currently connected to the server.
Implements mqtt::iasync_client.
|
overridevirtual |
Publishes a message to a topic on the server.
| topic | The topic to deliver the message to |
| payload | the bytes to use as the message payload |
| n | the number of bytes in the payload |
| qos | the Quality of Service to deliver the message at. Valid values are 0, 1 or 2. |
| retained | whether or not this message should be retained by the server. |
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
Publishes a message to a topic on the server.
| topic | The topic to deliver the message to |
| payload | the bytes to use as the message payload |
| n | the number of bytes in the payload |
Implements mqtt::iasync_client.
|
overridevirtual |
Publishes a message to a topic on the server.
| topic | The topic to deliver the message to |
| payload | the bytes to use as the message payload |
| qos | the Quality of Service to deliver the message at. Valid values are 0, 1 or 2. |
| retained | whether or not this message should be retained by the server. |
Implements mqtt::iasync_client.
|
inlineoverridevirtual |
Publishes a message to a topic on the server.
| topic | The topic to deliver the message to |
| payload | the bytes to use as the message payload |
Implements mqtt::iasync_client.
|
overridevirtual |
Publishes a message to a topic on the server.
| topic | The topic to deliver the message to |
| payload | the bytes to use as the message payload |
| n | the number of bytes in the payload |
| qos | the Quality of Service to deliver the message at. Valid values are 0, 1 or 2. |
| retained | whether or not this message should be retained by the server. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb |
Implements mqtt::iasync_client.
|
overridevirtual |
Publishes a message to a topic on the server Takes an Message message and delivers it to the server at the requested quality of service.
| msg | the message to deliver to the server |
Implements mqtt::iasync_client.
|
overridevirtual |
Publishes a message to a topic on the server.
| msg | the message to deliver to the server |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | callback optional listener that will be notified when message delivery has completed to the requested quality of service |
Implements mqtt::iasync_client.
|
overridevirtual |
Reconnects the client using options from the previous connect.
The client must have previously called connect() for this to work.
Implements mqtt::iasync_client.
|
overridevirtual |
Sets a callback listener to use for events that happen asynchronously.
| cb | callback receiver which will be invoked for certain asynchronous events |
Implements mqtt::iasync_client.
| void mqtt::async_client::start_consuming | ( | ) |
Start consuming messages.
This initializes the client to receive messages through a queue that can be read synchronously.
| void mqtt::async_client::stop_consuming | ( | ) |
Stop consuming messages.
This shuts down the internal callback and discards any unread messages.
|
overridevirtual |
Subscribe to multiple topics, each of which may include wildcards.
| topicFilters | |
| qos | the maximum quality of service at which to subscribe. Messages published at a lower quality of service will be received at the published QoS. Messages published at a higher quality of service will be received using the QoS specified on the subscribe. |
Implements mqtt::iasync_client.
|
overridevirtual |
Subscribes to multiple topics, each of which may include wildcards.
| topicFilters | |
| qos | the maximum quality of service at which to subscribe. Messages published at a lower quality of service will be received at the published QoS. Messages published at a higher quality of service will be received using the QoS specified on the subscribe. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | listener that will be notified when subscribe has completed |
Implements mqtt::iasync_client.
|
overridevirtual |
Subscribe to a topic, which may include wildcards.
| topicFilter | the topic to subscribe to, which can include wildcards. |
| qos |
Implements mqtt::iasync_client.
|
overridevirtual |
Subscribe to a topic, which may include wildcards.
| topicFilter | the topic to subscribe to, which can include wildcards. |
| qos | the maximum quality of service at which to subscribe. Messages published at a lower quality of service will be received at the published QoS. Messages published at a higher quality of service will be received using the QoS specified on the subscribe. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | listener that will be notified when subscribe has completed |
Implements mqtt::iasync_client.
|
inline |
Try to read the next message from the queue without blocking.
| msg | Pointer to the value to receive the message |
|
inline |
Waits a limited time for a message to arrive.
| msg | Pointer to the value to receive the message |
| relTime | The maximum amount of time to wait for a message. |
|
inline |
Waits until a specific time for a message to occur.
| msg | Pointer to the value to receive the message |
| absTime | The time point to wait until, before timing out. |
|
overridevirtual |
Requests the server unsubscribe the client from a topic.
| topicFilter | the topic to unsubscribe from. It must match a topicFilter specified on an earlier subscribe. |
Implements mqtt::iasync_client.
|
overridevirtual |
Requests the server unsubscribe the client from one or more topics.
| topicFilters | one or more topics to unsubscribe from. Each topicFilter must match one specified on an earlier subscribe. |
Implements mqtt::iasync_client.
|
overridevirtual |
Requests the server unsubscribe the client from one or more topics.
| topicFilters | |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | listener that will be notified when unsubscribe has completed |
Implements mqtt::iasync_client.
|
overridevirtual |
Requests the server unsubscribe the client from a topics.
| topicFilter | the topic to unsubscribe from. It must match a topicFilter specified on an earlier subscribe. |
| userContext | optional object used to pass context to the callback. Use nullptr if not required. |
| cb | listener that will be notified when unsubscribe has completed |
Implements mqtt::iasync_client.