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:
54
61 MqttClient(Allocator *allocator = ApiAllocator()) noexcept;
62
64 MqttClient(const MqttClient &) = delete;
68
72 operator bool() const noexcept;
73
77 int LastError() const noexcept;
78
92 std::shared_ptr<MqttConnection> NewConnection(
93 const char *hostName,
94 uint32_t port,
95 const Io::SocketOptions &socketOptions,
96 const Crt::Io::TlsContext &tlsContext,
97 bool useWebsocket = false) noexcept;
98
110 std::shared_ptr<MqttConnection> NewConnection(
111 const char *hostName,
112 uint32_t port,
113 const Io::SocketOptions &socketOptions,
114 bool useWebsocket = false) noexcept;
115
116 private:
117 aws_mqtt_client *m_client;
118 };
119 } // namespace Mqtt
120 } // namespace Crt
121} // 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
std::unique_ptr< T, std::function< void(T *)> > ScopedResource
Definition Types.h:163
Definition Allocator.h:11
Definition StringView.h:862