PahoMqttCpp
MQTT C++ Client for POSIX and Windows
Loading...
Searching...
No Matches
delivery_token.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_delivery_token_h
25#define __mqtt_delivery_token_h
26
27#include <memory>
28
29#include "MQTTAsync.h"
30#include "mqtt/message.h"
31#include "mqtt/token.h"
32
33namespace mqtt {
34
36
42class delivery_token : public token
43{
46
48 friend class async_client;
49
54 void set_message(const_message_ptr msg) { msg_ = msg; }
55
56public:
58 using ptr_t = std::shared_ptr<delivery_token>;
60 using const_ptr_t = std::shared_ptr<delivery_token>;
62 using weak_ptr_t = std::weak_ptr<delivery_token>;
63
75 : token(token::Type::PUBLISH, cli, msg->get_topic()), msg_(std::move(msg)) {}
87 iasync_client& cli, const_message_ptr msg, void* userContext, iaction_listener& cb
88 )
89 : token(token::Type::PUBLISH, cli, msg->get_topic(), userContext, cb),
90 msg_(std::move(msg)) {}
95 static ptr_t create(iasync_client& cli) { return std::make_shared<delivery_token>(cli); }
102 return std::make_shared<delivery_token>(cli, msg);
103 }
114 static ptr_t create(
115 iasync_client& cli, const_message_ptr msg, void* userContext, iaction_listener& cb
116 ) {
117 return std::make_shared<delivery_token>(cli, msg, userContext, cb);
118 }
123 virtual const_message_ptr get_message() const { return msg_; }
124};
125
128
131
133} // namespace mqtt
134
135#endif // __mqtt_delivery_token_h
Definition async_client.h:121
Definition delivery_token.h:43
delivery_token(iasync_client &cli)
Definition delivery_token.h:68
static ptr_t create(iasync_client &cli, const_message_ptr msg)
Definition delivery_token.h:101
delivery_token(iasync_client &cli, const_message_ptr msg, void *userContext, iaction_listener &cb)
Definition delivery_token.h:86
virtual const_message_ptr get_message() const
Definition delivery_token.h:123
static ptr_t create(iasync_client &cli)
Definition delivery_token.h:95
static ptr_t create(iasync_client &cli, const_message_ptr msg, void *userContext, iaction_listener &cb)
Definition delivery_token.h:114
std::shared_ptr< delivery_token > ptr_t
Definition delivery_token.h:58
std::shared_ptr< delivery_token > const_ptr_t
Definition delivery_token.h:60
delivery_token(iasync_client &cli, const_message_ptr msg)
Definition delivery_token.h:74
std::weak_ptr< delivery_token > weak_ptr_t
Definition delivery_token.h:62
Definition iaction_listener.h:50
Definition iasync_client.h:60
Definition token.h:54
Type
Definition token.h:64
@ PUBLISH
Definition token.h:64
Definition async_client.h:60
delivery_token::const_ptr_t const_delivery_token_ptr
Definition delivery_token.h:130
message::const_ptr_t const_message_ptr
Definition message.h:378
delivery_token::ptr_t delivery_token_ptr
Definition delivery_token.h:127