AWS IoT Device SDK C++ v2  1.34.0
AWS IoT Device SDK C++ v2
MqttClient.h
Go to the documentation of this file.
1 #pragma once
2 
6 #include <aws/crt/Exports.h>
7 #include <aws/crt/StlAllocator.h>
8 #include <aws/crt/Types.h>
11 #include <aws/crt/io/TlsOptions.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 
21 namespace 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 
63  ~MqttClient();
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 
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
Aws::Crt::ApiAllocator
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
TlsOptions.h
Aws::Crt::LastError
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:422
StlAllocator.h
Aws::Crt::Mqtt::MqttConnection
Definition: MqttConnection.h:158
HttpConnection.h
Aws::Crt::Mqtt::MqttClient::MqttClient
MqttClient(const MqttClient &)=delete
Types.h
std
Definition: StringView.h:852
AWS_CRT_CPP_API
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Aws
Definition: Allocator.h:11
SocketOptions.h
MqttConnection.h
Aws::Crt::Allocator
aws_allocator Allocator
Definition: Allocator.h:14
Exports.h
Aws::Crt::Io::ClientBootstrap
Definition: Bootstrap.h:35
Aws::Crt::Mqtt::MqttClient
Definition: MqttClient.h:48