paho-mqtt-cpp
MQTT C++ Client for POSIX and Windows
response_options.h
Go to the documentation of this file.
1 
7 #ifndef __mqtt_response_options_h
8 #define __mqtt_response_options_h
9 
10 #include "MQTTAsync.h"
11 #include "mqtt/token.h"
12 #include "mqtt/delivery_token.h"
13 #include "subscribe_options.h"
14 
15 namespace mqtt {
16 
17 class token_test;
18 
20 // response_options
22 
35 {
37  MQTTAsync_responseOptions opts_;
38 
40  token::weak_ptr_t tok_;
41 
43  properties props_;
44 
46  std::vector<MQTTSubscribe_options> subOpts_;
47 
49  friend class async_client;
50 
52  void update_c_struct();
53 
54 public:
59  explicit response_options(int mqttVersion=MQTTVERSION_DEFAULT);
65  response_options(const token_ptr& tok, int mqttVersion=MQTTVERSION_DEFAULT);
79  #if defined(UNIT_TESTS)
80  const MQTTAsync_responseOptions& c_struct() const { return opts_; }
81  #endif
87  void set_mqtt_version(int mqttVersion);
92  void set_token(const token_ptr& tok);
97  void set_properties(const properties& props) {
98  props_ = props;
99  opts_.properties = props_.c_struct();
100  }
105  void set_properties(properties&& props) {
106  props_ = std::move(props);
107  opts_.properties = props_.c_struct();
108  }
118  void set_subscribe_options(const std::vector<subscribe_options>& opts);
119 };
120 
122 
127 {
129  response_options opts_;
130 
131 public:
137  explicit response_options_builder(int mqttVersion=MQTTVERSION_DEFAULT)
138  : opts_(mqttVersion) {}
144  auto mqtt_version(int mqttVersion) -> self& {
145  opts_.set_mqtt_version(mqttVersion);
146  return *this;
147  }
152  auto token(const token_ptr& tok) -> self& {
153  opts_.set_token(tok);
154  return *this;
155  }
160  auto properties(mqtt::properties&& props) -> self& {
161  opts_.set_properties(std::move(props));
162  return *this;
163  }
168  auto properties(const mqtt::properties& props) -> self& {
169  opts_.set_properties(props);
170  return *this;
171  }
176  auto subscribe_opts(const subscribe_options& opts) -> self& {
177  opts_.set_subscribe_options(opts);
178  return *this;
179  }
184  auto subscribe_opts(const std::vector<subscribe_options>& opts) -> self& {
185  opts_.set_subscribe_options(opts);
186  return *this;
187  }
192  response_options finalize() { return opts_; }
193 };
194 
196 // delivery_response_options
198 
204 {
206  MQTTAsync_responseOptions opts_;
207 
210 
212  friend class async_client;
213 
214 public:
218  delivery_response_options(int mqttVersion=MQTTVERSION_DEFAULT);
225  int mqttVersion=MQTTVERSION_DEFAULT);
229  #if defined(UNIT_TESTS)
230  const MQTTAsync_responseOptions& c_struct() const { return opts_; }
231  #endif
236  void set_token(const delivery_token_ptr& dtok) {
237  dtok_ = dtok;
238  opts_.context = dtok.get();
239  }
240 };
241 
243 // end namespace 'mqtt'
244 }
245 
246 #endif // __mqtt_response_options_h
247 
Definition: async_client.h:108
Definition: response_options.h:204
void set_token(const delivery_token_ptr &dtok)
Definition: response_options.h:236
delivery_response_options(int mqttVersion=MQTTVERSION_DEFAULT)
delivery_response_options(const delivery_token_ptr &dtok, int mqttVersion=MQTTVERSION_DEFAULT)
std::weak_ptr< delivery_token > weak_ptr_t
Definition: delivery_token.h:61
Definition: properties.h:256
const MQTTProperties & c_struct() const
Definition: properties.h:308
Definition: response_options.h:127
auto properties(mqtt::properties &&props) -> self &
Definition: response_options.h:160
auto subscribe_opts(const subscribe_options &opts) -> self &
Definition: response_options.h:176
auto properties(const mqtt::properties &props) -> self &
Definition: response_options.h:168
auto token(const token_ptr &tok) -> self &
Definition: response_options.h:152
auto subscribe_opts(const std::vector< subscribe_options > &opts) -> self &
Definition: response_options.h:184
response_options finalize()
Definition: response_options.h:192
auto mqtt_version(int mqttVersion) -> self &
Definition: response_options.h:144
response_options_builder(int mqttVersion=MQTTVERSION_DEFAULT)
Definition: response_options.h:137
Definition: response_options.h:35
response_options(int mqttVersion=MQTTVERSION_DEFAULT)
response_options & operator=(const response_options &rhs)
void set_token(const token_ptr &tok)
response_options(const token_ptr &tok, int mqttVersion=MQTTVERSION_DEFAULT)
void set_subscribe_options(const subscribe_options &opts)
void set_subscribe_options(const std::vector< subscribe_options > &opts)
void set_mqtt_version(int mqttVersion)
void set_properties(properties &&props)
Definition: response_options.h:105
void set_properties(const properties &props)
Definition: response_options.h:97
response_options(const response_options &other)
Definition: subscribe_options.h:42
std::weak_ptr< token > weak_ptr_t
Definition: token.h:60
Definition: async_client.h:49
token::ptr_t token_ptr
Definition: token.h:506
delivery_token::ptr_t delivery_token_ptr
Definition: delivery_token.h:125