7 #if !defined(MQTT_SYNC_CLIENT_HPP)
8 #define MQTT_SYNC_CLIENT_HPP
17 template <
typename Socket, std::
size_t PacketIdBytes = 2>
27 template<
typename ... Args>
39 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, as::io_context::strand>>>>
49 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, null_strand>>>>
52 #if defined(MQTT_USE_WS)
62 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>>>>
63 make_sync_client_ws(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
73 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>>>>
74 make_sync_client_no_strand_ws(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
77 #if defined(MQTT_USE_TLS)
85 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>>>
86 make_tls_sync_client(as::io_context& ioc, std::string host, std::string port,
protocol_version version);
95 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>,
null_strand>>>>
96 make_tls_sync_client_no_strand(as::io_context& ioc, std::string host, std::string port,
protocol_version version);
98 #if defined(MQTT_USE_WS)
108 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>>>
109 make_tls_sync_client_ws(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
119 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>,
null_strand>>>>
120 make_tls_sync_client_no_strand_ws(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
131 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>>>
141 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, null_strand>, 4>>>
144 #if defined(MQTT_USE_WS)
154 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>>>
155 make_sync_client_ws_32(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
165 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>, 4>>>
166 make_sync_client_no_strand_ws_32(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
169 #if defined(MQTT_USE_TLS)
177 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>>>
178 make_tls_sync_client_32(as::io_context& ioc, std::string host, std::string port,
protocol_version version);
187 friend std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>,
null_strand>, 4>>>
188 make_tls_sync_client_no_strand_32(as::io_context& ioc, std::string host, std::string port,
protocol_version version);
190 #if defined(MQTT_USE_WS)
200 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>>>
201 make_tls_sync_client_ws_32(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
211 friend std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>,
null_strand>, 4>>>
212 make_tls_sync_client_no_strand_ws_32(as::io_context& ioc, std::string host, std::string port, std::string path,
protocol_version version);
254 #
if defined(MQTT_USE_WS)
256 std::string path =
"/"
261 #if defined(MQTT_USE_WS)
271 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, as::io_context::strand>>>>
274 return std::make_shared<callable_overlay<sync_client_t>>(
275 sync_client_t::constructor_access(),
279 #if defined(MQTT_USE_WS)
286 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, as::io_context::strand>>>>
291 std::to_string(port),
296 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, null_strand>>>>
299 return std::make_shared<callable_overlay<sync_client_t>>(
300 sync_client_t::constructor_access(),
304 #if defined(MQTT_USE_WS)
311 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, null_strand>>>>
316 std::to_string(port),
321 #if defined(MQTT_USE_WS)
323 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>>>>
325 using sync_client_t = sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>>;
326 return std::make_shared<callable_overlay<sync_client_t>>(
327 sync_client_t::constructor_access(),
336 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>>>>
338 return make_sync_client_ws(
341 std::to_string(port),
347 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>>>>
349 using sync_client_t = sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>>;
350 return std::make_shared<callable_overlay<sync_client_t>>(
351 sync_client_t::constructor_access(),
360 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>>>>
362 return make_sync_client_no_strand_ws(
365 std::to_string(port),
373 #if defined(MQTT_USE_TLS)
375 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>>>
377 using sync_client_t = sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>;
378 return std::make_shared<callable_overlay<sync_client_t>>(
379 sync_client_t::constructor_access(),
383 #if defined(MQTT_USE_WS)
390 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>>>
392 return make_tls_sync_client(
395 std::to_string(port),
400 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>>>>
402 using sync_client_t = sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>>;
403 return std::make_shared<callable_overlay<sync_client_t>>(
404 sync_client_t::constructor_access(),
408 #if defined(MQTT_USE_WS)
415 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>>>>
417 return make_tls_sync_client_no_strand(
420 std::to_string(port),
425 #if defined(MQTT_USE_WS)
427 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>>>
429 using sync_client_t = sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>;
430 return std::make_shared<callable_overlay<sync_client_t>>(
431 sync_client_t::constructor_access(),
440 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>>>>
442 return make_tls_sync_client_ws(
445 std::to_string(port),
451 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>>>>
453 using sync_client_t = sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>>;
454 return std::make_shared<callable_overlay<sync_client_t>>(
455 sync_client_t::constructor_access(),
464 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>>>>
466 return make_tls_sync_client_no_strand_ws(
469 std::to_string(port),
482 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>>>
485 return std::make_shared<callable_overlay<sync_client_t>>(
486 sync_client_t::constructor_access(),
490 #if defined(MQTT_USE_WS)
497 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>>>
502 std::to_string(port),
507 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, null_strand>, 4>>>
510 return std::make_shared<callable_overlay<sync_client_t>>(
511 sync_client_t::constructor_access(),
515 #if defined(MQTT_USE_WS)
522 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<as::ip::tcp::socket, null_strand>, 4>>>
527 std::to_string(port),
532 #if defined(MQTT_USE_WS)
534 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>>>
536 using sync_client_t = sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>;
537 return std::make_shared<callable_overlay<sync_client_t>>(
538 sync_client_t::constructor_access(),
547 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, as::io_context::strand>, 4>>>
549 return make_sync_client_ws_32(
552 std::to_string(port),
558 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>, 4>>>
560 using sync_client_t = sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>, 4>;
561 return std::make_shared<callable_overlay<sync_client_t>>(
562 sync_client_t::constructor_access(),
571 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<as::ip::tcp::socket, null_strand>, 4>>>
573 return make_sync_client_no_strand_ws_32(
576 std::to_string(port),
584 #if defined(MQTT_USE_TLS)
586 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>>>
588 using sync_client_t = sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>;
589 return std::make_shared<callable_overlay<sync_client_t>>(
590 sync_client_t::constructor_access(),
594 #if defined(MQTT_USE_WS)
601 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>>>
603 return make_tls_sync_client_32(
606 std::to_string(port),
611 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>, 4>>>
613 using sync_client_t = sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>, 4>;
614 return std::make_shared<callable_overlay<sync_client_t>>(
615 sync_client_t::constructor_access(),
619 #if defined(MQTT_USE_WS)
626 inline std::shared_ptr<callable_overlay<sync_client<tcp_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>, 4>>>
628 return make_tls_sync_client_no_strand_32(
631 std::to_string(port),
636 #if defined(MQTT_USE_WS)
638 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>>>
640 using sync_client_t = sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>;
641 return std::make_shared<callable_overlay<sync_client_t>>(
642 sync_client_t::constructor_access(),
651 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, as::io_context::strand>, 4>>>
653 return make_tls_sync_client_ws_32(
656 std::to_string(port),
662 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>, 4>>>
664 using sync_client_t = sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>, 4>;
665 return std::make_shared<callable_overlay<sync_client_t>>(
666 sync_client_t::constructor_access(),
675 inline std::shared_ptr<callable_overlay<sync_client<ws_endpoint<tls::stream<as::ip::tcp::socket>, null_strand>, 4>>>
677 return make_tls_sync_client_no_strand_ws_32(
680 std::to_string(port),
Definition: client.hpp:36
void set_auto_pub_response(bool b=true, bool async=true)
Set auto publish response mode.
Definition: endpoint.hpp:855
Definition: sync_client.hpp:18
void async_pubrec()=delete
friend std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, null_strand >, 4 > > > make_sync_client_no_strand_32(as::io_context &ioc, std::string host, std::string port, protocol_version version)
Create no tls sync_client without strand.
Definition: sync_client.hpp:508
void async_connect()=delete
void async_connack()=delete
void async_pubcomp()=delete
void async_disconnect()=delete
friend std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, as::io_context::strand > > > > make_sync_client(as::io_context &ioc, std::string host, std::string port, protocol_version version)
Create no tls sync_client with strand.
Definition: sync_client.hpp:272
sync_client(as::io_context &ioc, std::string host, std::string port, protocol_version version=protocol_version::v3_1_1)
Definition: sync_client.hpp:250
void async_puback()=delete
void async_publish()=delete
void set_auto_pub_response(bool b=true)
Set auto publish response mode.
Definition: sync_client.hpp:223
friend std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, as::io_context::strand >, 4 > > > make_sync_client_32(as::io_context &ioc, std::string host, std::string port, protocol_version version)
Create no tls sync_client with strand.
Definition: sync_client.hpp:483
void async_unsuback()=delete
sync_client(constructor_access, Args &&... args)
Definition: sync_client.hpp:28
void async_subscribe()=delete
void async_pubrel()=delete
void async_unsubscribe()=delete
friend std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, null_strand > > > > make_sync_client_no_strand(as::io_context &ioc, std::string host, std::string port, protocol_version version)
Create no tls sync_client without strand.
Definition: sync_client.hpp:297
void async_suback()=delete
void async_pingresp()=delete
constexpr std::remove_reference_t< T > && force_move(T &&t)
Definition: move.hpp:20
protocol_version
Definition: protocol_version.hpp:17
std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, null_strand > > > > make_sync_client_no_strand(as::io_context &ioc, std::string host, std::string port, protocol_version version=protocol_version::v3_1_1)
Definition: sync_client.hpp:297
std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, as::io_context::strand > > > > make_sync_client(as::io_context &ioc, std::string host, std::string port, protocol_version version=protocol_version::v3_1_1)
Definition: sync_client.hpp:272
std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, as::io_context::strand >, 4 > > > make_sync_client_32(as::io_context &ioc, std::string host, std::string port, protocol_version version=protocol_version::v3_1_1)
Definition: sync_client.hpp:483
std::shared_ptr< callable_overlay< sync_client< tcp_endpoint< as::ip::tcp::socket, null_strand >, 4 > > > make_sync_client_no_strand_32(as::io_context &ioc, std::string host, std::string port, protocol_version version=protocol_version::v3_1_1)
Definition: sync_client.hpp:508
Definition: client.hpp:40
Definition: null_strand.hpp:20