PahoMqttCpp
MQTT C++ Client for POSIX and Windows
Loading...
Searching...
No Matches
subscribe_options.h
Go to the documentation of this file.
1
7
8/*******************************************************************************
9 * Copyright (c) 2019-2023 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_subscribe_options_h
25#define __mqtt_subscribe_options_h
26
27#include "MQTTAsync.h"
28#include "MQTTSubscribeOpts.h"
29#include "mqtt/platform.h"
30#include "mqtt/types.h"
31
32namespace mqtt {
33
35
49{
51 MQTTSubscribe_options opts_;
52
54 friend class async_client;
55 friend class response_options;
56
57public:
59 using ptr_t = std::shared_ptr<subscribe_options>;
61 using const_ptr_t = std::shared_ptr<const subscribe_options>;
62
64 static constexpr bool NO_LOCAL = true;
66 static constexpr bool LOCAL = false;
67
69 [[deprecated("Use NO_LOCAL")]]
70 static constexpr bool SUBSCRIBE_NO_LOCAL = true;
72 [[deprecated("Use LOCAL")]]
73 static constexpr bool SUBSCRIBE_LOCAL = false;
74
79 static constexpr bool NO_RETAIN_AS_PUBLISHED = false;
81 static constexpr bool RETAIN_AS_PUBLISHED = true;
82
92
98 subscribe_options() : opts_(MQTTSubscribe_options_initializer) {}
113 bool noLocal, bool retainAsPublished = false,
115 )
116 : opts_(MQTTSubscribe_options_initializer) {
117 opts_.noLocal = noLocal ? 1 : 0;
118 opts_.retainAsPublished = retainAsPublished ? 1 : 0;
119 opts_.retainHandling = (unsigned char)retainHandling;
120 }
125 explicit subscribe_options(MQTTSubscribe_options opts) : opts_{opts} {}
126
127#if defined(UNIT_TESTS)
131 const auto& c_struct() const { return opts_; }
132#endif
133
139 bool get_no_local() const { return to_bool(opts_.noLocal); }
145 void set_no_local(bool on = true) { opts_.noLocal = on ? 1 : 0; }
151 bool get_retain_as_published() const { return to_bool(opts_.retainAsPublished); }
157 void set_retain_as_published(bool on = true) { opts_.retainAsPublished = on ? 1 : 0; }
167 return RetainHandling(opts_.retainHandling);
168 }
177 void set_retain_handling(RetainHandling retainHandling) {
178 opts_.retainHandling = (unsigned char)retainHandling;
179 }
180};
181
184
186} // namespace mqtt
187
188#endif // __mqtt_subscribe_options_h
Definition async_client.h:121
Definition response_options.h:51
Definition subscribe_options.h:49
RetainHandling
Definition subscribe_options.h:84
@ SEND_RETAINED_ON_NEW
Definition subscribe_options.h:88
@ DONT_SEND_RETAINED
Definition subscribe_options.h:90
@ SEND_RETAINED_ON_SUBSCRIBE
Definition subscribe_options.h:86
subscribe_options()
Definition subscribe_options.h:98
auto get_retain_handling() const -> RetainHandling
Definition subscribe_options.h:166
static constexpr bool NO_RETAIN_AS_PUBLISHED
Definition subscribe_options.h:79
subscribe_options(MQTTSubscribe_options opts)
Definition subscribe_options.h:125
bool get_no_local() const
Definition subscribe_options.h:139
static constexpr bool LOCAL
Definition subscribe_options.h:66
static constexpr bool SUBSCRIBE_NO_LOCAL
Definition subscribe_options.h:70
std::shared_ptr< const subscribe_options > const_ptr_t
Definition subscribe_options.h:61
void set_retain_as_published(bool on=true)
Definition subscribe_options.h:157
static constexpr bool SUBSCRIBE_LOCAL
Definition subscribe_options.h:73
void set_no_local(bool on=true)
Definition subscribe_options.h:145
bool get_retain_as_published() const
Definition subscribe_options.h:151
std::shared_ptr< subscribe_options > ptr_t
Definition subscribe_options.h:59
void set_retain_handling(RetainHandling retainHandling)
Definition subscribe_options.h:177
static constexpr bool RETAIN_AS_PUBLISHED
Definition subscribe_options.h:81
subscribe_options(bool noLocal, bool retainAsPublished=false, RetainHandling retainHandling=SEND_RETAINED_ON_SUBSCRIBE)
Definition subscribe_options.h:112
static constexpr bool NO_LOCAL
Definition subscribe_options.h:64
Definition async_client.h:60
subscribe_options::ptr_t subscribe_options_ptr
Definition subscribe_options.h:183
bool to_bool(int n)
Definition types.h:107