aws-crt-cpp
C++ wrapper around the aws-c-* libraries. Provides Cross-Platform Transport Protocols and SSL/TLS implementations for C++.
Loading...
Searching...
No Matches
MqttClient.h
Go to the documentation of this file.
1#pragma once
6#include <aws/crt/Exports.h>
8#include <aws/crt/Types.h>
13
14#include <aws/mqtt/client.h>
15#include <aws/mqtt/v5/mqtt5_client.h>
16
17#include <atomic>
18#include <functional>
19#include <memory>
20
21namespace Aws
22{
23 namespace Crt
24 {
25 namespace Io
26 {
27 class ClientBootstrap;
28 }
29
30 namespace Http
31 {
32 class HttpRequest;
33 }
34
35 namespace Mqtt5
36 {
37 class Mqtt5ClientCore;
38 }
39
40 namespace Mqtt
41 {
48 {
49 public:
53 MqttClient(Io::ClientBootstrap &bootstrap, Allocator *allocator = ApiAllocator()) noexcept;
54
61 MqttClient(Allocator *allocator = ApiAllocator()) noexcept;
62
64 MqttClient(const MqttClient &) = delete;
65 MqttClient(MqttClient &&) noexcept;
66 MqttClient &operator=(const MqttClient &) = delete;
67 MqttClient &operator=(MqttClient &&) noexcept;
68
72 operator bool() const noexcept;
73
77 int LastError() const noexcept;
78
93 std::shared_ptr<MqttConnection> NewConnection(
94 const char *hostName,
95 uint32_t port,
96 const Io::SocketOptions &socketOptions,
97 const Crt::Io::TlsContext &tlsContext,
98 bool useWebsocket = false,
99 bool enableMetrics = true) noexcept;
100
113 std::shared_ptr<MqttConnection> NewConnection(
114 const char *hostName,
115 uint32_t port,
116 const Io::SocketOptions &socketOptions,
117 bool useWebsocket = false,
118 bool enableMetrics = true) noexcept;
119
120 private:
121 aws_mqtt_client *m_client;
122 };
123 } // namespace Mqtt
124 } // namespace Crt
125} // namespace Aws
#define AWS_CRT_CPP_API
Definition Exports.h:36
Definition Bootstrap.h:35
Definition MqttClient.h:48
MqttClient(const MqttClient &)=delete
Definition MqttConnection.h:158
aws_allocator Allocator
Definition Allocator.h:14
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition Allocator.cpp:24
Definition Allocator.h:11
Definition StringView.h:862