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")]] static constexpr bool SUBSCRIBE_NO_LOCAL = true;
71 [[deprecated("Use LOCAL")]] static constexpr bool SUBSCRIBE_LOCAL = false;
72
77 static constexpr bool NO_RETAIN_AS_PUBLISHED = false;
79 static constexpr bool RETAIN_AS_PUBLISHED = true;
80
90
96 subscribe_options() : opts_(MQTTSubscribe_options_initializer) {}
111 bool noLocal, bool retainAsPublished = false,
113 )
114 : opts_(MQTTSubscribe_options_initializer) {
115 opts_.noLocal = noLocal ? 1 : 0;
116 opts_.retainAsPublished = retainAsPublished ? 1 : 0;
117 opts_.retainHandling = (unsigned char)retainHandling;
118 }
119
123 explicit subscribe_options(MQTTSubscribe_options opts) : opts_{opts} {}
124
125#if defined(UNIT_TESTS)
129 const auto& c_struct() const { return opts_; }
130#endif
131
137 bool get_no_local() const { return to_bool(opts_.noLocal); }
143 void set_no_local(bool on = true) { opts_.noLocal = on ? 1 : 0; }
149 bool get_retain_as_published() const { return to_bool(opts_.retainAsPublished); }
155 void set_retain_as_published(bool on = true) { opts_.retainAsPublished = on ? 1 : 0; }
165 return RetainHandling(opts_.retainHandling);
166 }
167
175 void set_retain_handling(RetainHandling retainHandling) {
176 opts_.retainHandling = (unsigned char)retainHandling;
177 }
178};
179
182
184} // namespace mqtt
185
186#endif // __mqtt_subscribe_options_h
RetainHandling
Definition subscribe_options.h:82
@ SEND_RETAINED_ON_NEW
Definition subscribe_options.h:86
@ DONT_SEND_RETAINED
Definition subscribe_options.h:88
@ SEND_RETAINED_ON_SUBSCRIBE
Definition subscribe_options.h:84
subscribe_options()
Definition subscribe_options.h:96
auto get_retain_handling() const -> RetainHandling
Definition subscribe_options.h:164
static constexpr bool NO_RETAIN_AS_PUBLISHED
Definition subscribe_options.h:77
subscribe_options(MQTTSubscribe_options opts)
Definition subscribe_options.h:123
bool get_no_local() const
Definition subscribe_options.h:137
static constexpr bool LOCAL
Definition subscribe_options.h:66
static constexpr bool SUBSCRIBE_NO_LOCAL
Definition subscribe_options.h:69
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:155
friend class async_client
Definition subscribe_options.h:54
static constexpr bool SUBSCRIBE_LOCAL
Definition subscribe_options.h:71
void set_no_local(bool on=true)
Definition subscribe_options.h:143
bool get_retain_as_published() const
Definition subscribe_options.h:149
std::shared_ptr< subscribe_options > ptr_t
Definition subscribe_options.h:59
void set_retain_handling(RetainHandling retainHandling)
Definition subscribe_options.h:175
static constexpr bool RETAIN_AS_PUBLISHED
Definition subscribe_options.h:79
friend class response_options
Definition subscribe_options.h:55
subscribe_options(bool noLocal, bool retainAsPublished=false, RetainHandling retainHandling=SEND_RETAINED_ON_SUBSCRIBE)
Definition subscribe_options.h:110
static constexpr bool NO_LOCAL
Definition subscribe_options.h:64
Definition async_client.h:60
bool to_bool(int n)
Definition types.h:107
subscribe_options::ptr_t subscribe_options_ptr
Definition subscribe_options.h:181