paho-mqtt-cpp
MQTT C++ Client for POSIX and Windows
iasync_client.h
Go to the documentation of this file.
1 
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"
32 #include "mqtt/iaction_listener.h"
33 #include "mqtt/connect_options.h"
35 #include "mqtt/subscribe_options.h"
36 #include "mqtt/exception.h"
37 #include "mqtt/message.h"
38 #include "mqtt/callback.h"
39 #include <vector>
40 
41 namespace mqtt {
42 
44 
59 {
60  friend class token;
61  virtual void remove_token(token* tok) =0;
62 
63 public:
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;
176  virtual delivery_token_ptr get_pending_delivery_token(int msgID) const =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,
307  const subscribe_options& opts=subscribe_options(),
308  const properties& props=properties()) =0;
327  virtual token_ptr subscribe(const string& topicFilter, int qos,
328  void* userContext, iaction_listener& callback,
329  const subscribe_options& opts=subscribe_options(),
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;
452  virtual bool try_consume_message(const_message_ptr* msg) =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 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 std::vector< delivery_token_ptr > get_pending_delivery_tokens() const =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