PahoMqttCpp
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#ifndef __mqtt_iasync_client_h
25#define __mqtt_iasync_client_h
26
27#include <vector>
28
29#include "mqtt/callback.h"
31#include "mqtt/delivery_token.h"
33#include "mqtt/event.h"
34#include "mqtt/exception.h"
37#include "mqtt/message.h"
39#include "mqtt/token.h"
40#include "mqtt/types.h"
41
42namespace mqtt {
43
45
60{
61 friend class token;
62 virtual void remove_token(token* tok) = 0;
63
64public:
66 using qos_collection = std::vector<int>;
67
71 virtual ~iasync_client() {}
79 virtual token_ptr connect() = 0;
89 virtual token_ptr connect(connect_options options) = 0;
105 connect_options options, void* userContext, iaction_listener& cb
106 ) = 0;
117 virtual token_ptr connect(void* userContext, iaction_listener& cb) = 0;
123 virtual token_ptr reconnect() = 0;
130 virtual token_ptr disconnect() = 0;
148 virtual token_ptr disconnect(int timeout) = 0;
162 virtual token_ptr disconnect(int timeout, void* userContext, iaction_listener& cb) = 0;
173 virtual token_ptr disconnect(void* userContext, iaction_listener& cb) = 0;
178 virtual delivery_token_ptr get_pending_delivery_token(int msgID) const = 0;
183 virtual std::vector<delivery_token_ptr> get_pending_delivery_tokens() const = 0;
188 virtual string get_client_id() const = 0;
192 virtual string get_server_uri() const = 0;
196 virtual bool is_connected() const = 0;
210 string_ref topic, const void* payload, size_t n, int qos, bool retained,
211 const properties &props=properties()
212 ) = 0;
221 virtual delivery_token_ptr publish(string_ref topic, const void* payload, size_t n) = 0;
238 string_ref topic, const void* payload, size_t n, int qos, bool retained,
239 void* userContext, iaction_listener& cb
240 ) = 0;
253 string_ref topic, binary_ref payload, int qos, bool retained,
254 const properties &props=properties()
255 ) = 0;
284 const_message_ptr msg, void* userContext, iaction_listener& cb
285 ) = 0;
292 virtual void set_callback(callback& cb) = 0;
296 virtual void disable_callbacks() = 0;
312 const string& topicFilter, int qos,
313 const subscribe_options& opts = subscribe_options(),
314 const properties& props = properties()
315 ) = 0;
335 const string& topicFilter, int qos, void* userContext, iaction_listener& callback,
336 const subscribe_options& opts = subscribe_options(),
337 const properties& props = properties()
338 ) = 0;
357 const_string_collection_ptr topicFilters, const qos_collection& qos,
358 const std::vector<subscribe_options>& opts = std::vector<subscribe_options>(),
359 const properties& props = properties()
360 ) = 0;
381 const_string_collection_ptr topicFilters, const qos_collection& qos,
382 void* userContext, iaction_listener& callback,
383 const std::vector<subscribe_options>& opts = std::vector<subscribe_options>(),
384 const properties& props = properties()
385 ) = 0;
395 const string& topicFilter, const properties& props = properties()
396 ) = 0;
407 const_string_collection_ptr topicFilters, const properties& props = properties()
408 ) = 0;
423 const_string_collection_ptr topicFilters, void* userContext, iaction_listener& cb,
424 const properties& props = properties()
425 ) = 0;
439 const string& topicFilter, void* userContext, iaction_listener& cb,
440 const properties& props = properties()
441 ) = 0;
447 virtual void start_consuming() = 0;
453 virtual void stop_consuming() = 0;
457 virtual void clear_consumer() {}
465 virtual bool consumer_closed() noexcept {
466 return false;
467 }
475 virtual bool consumer_done() noexcept {
476 return false;
477 }
486 virtual std::size_t consumer_queue_size() const { return 0; }
505 virtual event consume_event() {
506 return event{};
507 }
514 virtual bool try_consume_event(event* evt) {
515 (void)evt;
516 return false;
517 }
518};
519
521} // namespace mqtt
522
523#endif // __mqtt_iasync_client_h
Definition callback.h:43
Definition connect_options.h:50
Definition disconnect_options.h:41
Definition event.h:85
Definition iaction_listener.h:50
Definition iasync_client.h:60
virtual event consume_event()
Definition iasync_client.h:505
virtual void clear_consumer()
Definition iasync_client.h:457
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 consumer_closed() noexcept
Definition iasync_client.h:465
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 bool try_consume_event(event *evt)
Definition iasync_client.h:514
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:71
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(string_ref topic, binary_ref payload, int qos, bool retained, const properties &props=properties())=0
virtual std::size_t consumer_queue_size() const
Definition iasync_client.h:486
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 bool consumer_done() noexcept
Definition iasync_client.h:475
virtual token_ptr unsubscribe(const string &topicFilter, const properties &props=properties())=0
virtual token_ptr connect(void *userContext, iaction_listener &cb)=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 delivery_token_ptr publish(string_ref topic, const void *payload, size_t n, int qos, bool retained, const properties &props=properties())=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 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:66
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:293
Definition subscribe_options.h:49
Definition token.h:54
Definition topic.h:45
Definition async_client.h:60
string_collection::const_ptr_t const_string_collection_ptr
Definition string_collection.h:259
token::ptr_t token_ptr
Definition token.h:513
message::const_ptr_t const_message_ptr
Definition message.h:377
delivery_token::ptr_t delivery_token_ptr
Definition delivery_token.h:127