paho-mqtt-cpp
MQTT C++ Client for POSIX and Windows
Loading...
Searching...
No Matches
iasync_client.h
Go to the documentation of this file.
1
7
8/*******************************************************************************
9 * Copyright (c) 2013-2016 Frank Pagliughi <fpagliughi@mindspring.com>
10 *
11 * All rights reserved. This program and the accompanying materials
12 * are made available under the terms of the Eclipse Public License v2.0
13 * and Eclipse Distribution License v1.0 which accompany this distribution.
14 *
15 * The Eclipse Public License is available at
16 * http://www.eclipse.org/legal/epl-v20.html
17 * and the Eclipse Distribution License is available at
18 * http://www.eclipse.org/org/documents/edl-v10.php.
19 *
20 * Contributors:
21 * Frank Pagliughi - initial implementation and documentation
22 *******************************************************************************/
23
24
25#ifndef __mqtt_iasync_client_h
26#define __mqtt_iasync_client_h
27
28#include "mqtt/types.h"
29#include "mqtt/token.h"
30#include "mqtt/delivery_token.h"
36#include "mqtt/exception.h"
37#include "mqtt/message.h"
38#include "mqtt/callback.h"
39#include <vector>
40
41namespace mqtt {
42
44
59{
60 friend class token;
61 virtual void remove_token(token* tok) =0;
62
63public:
65 using qos_collection = std::vector<int>;
66
70 virtual ~iasync_client() {}
78 virtual token_ptr connect() =0;
88 virtual token_ptr connect(connect_options options) =0;
103 virtual token_ptr connect(connect_options options, void* userContext,
104 iaction_listener& cb) =0;
115 virtual token_ptr connect(void* userContext, iaction_listener& cb) =0;
121 virtual token_ptr reconnect() =0;
128 virtual token_ptr disconnect() =0;
146 virtual token_ptr disconnect(int timeout) =0;
160 virtual token_ptr disconnect(int timeout, void* userContext, iaction_listener& cb) =0;
171 virtual token_ptr disconnect(void* userContext, iaction_listener& cb) =0;
181 virtual std::vector<delivery_token_ptr> get_pending_delivery_tokens() const =0;
186 virtual string get_client_id() const =0;
190 virtual string get_server_uri() const =0;
194 virtual bool is_connected() const =0;
208 const void* payload, size_t n,
209 int qos, bool retained) =0;
219 const void* payload, size_t n) =0;
236 const void* payload, size_t n,
237 int qos, bool retained,
238 void* userContext, iaction_listener& cb) =0;
251 int qos, bool retained) =0;
280 void* userContext, iaction_listener& cb) =0;
287 virtual void set_callback(callback& cb) =0;
291 virtual void disable_callbacks() =0;
306 virtual token_ptr subscribe(const string& topicFilter, int qos,
308 const properties& props=properties()) =0;
327 virtual token_ptr subscribe(const string& topicFilter, int qos,
328 void* userContext, iaction_listener& callback,
330 const properties& props=properties()) =0;
349 const qos_collection& qos,
350 const std::vector<subscribe_options>& opts=std::vector<subscribe_options>(),
351 const properties& props=properties()) =0;
372 const qos_collection& qos,
373 void* userContext, iaction_listener& callback,
374 const std::vector<subscribe_options>& opts=std::vector<subscribe_options>(),
375 const properties& props=properties()) =0;
384 virtual token_ptr unsubscribe(const string& topicFilter,
385 const properties& props=properties()) =0;
396 const properties& props=properties()) =0;
411 void* userContext, iaction_listener& cb,
412 const properties& props=properties()) =0;
425 virtual token_ptr unsubscribe(const string& topicFilter,
426 void* userContext, iaction_listener& cb,
427 const properties& props=properties()) =0;
433 virtual void start_consuming() =0;
439 virtual void stop_consuming() =0;
453};
454
456// end namespace 'mqtt'
457}
458
459#endif // __mqtt_iasync_client_h
460
Definition: callback.h:42
Definition: connect_options.h:49
Definition: disconnect_options.h:40
Definition: iaction_listener.h:49
Definition: iasync_client.h:59
virtual delivery_token_ptr publish(const_message_ptr msg, void *userContext, iaction_listener &cb)=0
virtual void disable_callbacks()=0
virtual void start_consuming()=0
virtual string get_server_uri() const =0
virtual std::vector< delivery_token_ptr > get_pending_delivery_tokens() const =0
virtual bool try_consume_message(const_message_ptr *msg)=0
virtual token_ptr connect()=0
virtual token_ptr unsubscribe(const_string_collection_ptr topicFilters, const properties &props=properties())=0
virtual bool is_connected() const =0
virtual const_message_ptr consume_message()=0
virtual token_ptr connect(connect_options options, void *userContext, iaction_listener &cb)=0
virtual token_ptr unsubscribe(const_string_collection_ptr topicFilters, void *userContext, iaction_listener &cb, const properties &props=properties())=0
virtual ~iasync_client()
Definition: iasync_client.h:70
virtual delivery_token_ptr publish(string_ref topic, const void *payload, size_t n, int qos, bool retained, void *userContext, iaction_listener &cb)=0
virtual token_ptr unsubscribe(const string &topicFilter, void *userContext, iaction_listener &cb, const properties &props=properties())=0
virtual delivery_token_ptr publish(string_ref topic, const void *payload, size_t n)=0
virtual delivery_token_ptr get_pending_delivery_token(int msgID) const =0
virtual delivery_token_ptr publish(const_message_ptr msg)=0
virtual void stop_consuming()=0
virtual token_ptr subscribe(const_string_collection_ptr topicFilters, const qos_collection &qos, const std::vector< subscribe_options > &opts=std::vector< subscribe_options >(), const properties &props=properties())=0
virtual token_ptr unsubscribe(const string &topicFilter, const properties &props=properties())=0
virtual token_ptr connect(void *userContext, iaction_listener &cb)=0
virtual delivery_token_ptr publish(string_ref topic, binary_ref payload, int qos, bool retained)=0
virtual string get_client_id() const =0
virtual token_ptr subscribe(const_string_collection_ptr topicFilters, const qos_collection &qos, void *userContext, iaction_listener &callback, const std::vector< subscribe_options > &opts=std::vector< subscribe_options >(), const properties &props=properties())=0
virtual token_ptr disconnect(disconnect_options opts)=0
virtual void set_callback(callback &cb)=0
virtual token_ptr disconnect(void *userContext, iaction_listener &cb)=0
virtual token_ptr subscribe(const string &topicFilter, int qos, void *userContext, iaction_listener &callback, const subscribe_options &opts=subscribe_options(), const properties &props=properties())=0
virtual token_ptr reconnect()=0
virtual delivery_token_ptr publish(string_ref topic, binary_ref payload)=0
virtual delivery_token_ptr publish(string_ref topic, const void *payload, size_t n, int qos, bool retained)=0
virtual token_ptr connect(connect_options options)=0
virtual token_ptr subscribe(const string &topicFilter, int qos, const subscribe_options &opts=subscribe_options(), const properties &props=properties())=0
std::vector< int > qos_collection
Definition: iasync_client.h:65
virtual token_ptr disconnect(int timeout, void *userContext, iaction_listener &cb)=0
virtual token_ptr disconnect()=0
virtual token_ptr disconnect(int timeout)=0
Definition: properties.h:256
Definition: subscribe_options.h:42
Definition: token.h:53
Definition: topic.h:44
Definition: async_client.h:49
string_collection::const_ptr_t const_string_collection_ptr
Definition: string_collection.h:234
token::ptr_t token_ptr
Definition: token.h:506
message::const_ptr_t const_message_ptr
Definition: message.h:368
delivery_token::ptr_t delivery_token_ptr
Definition: delivery_token.h:125