AWS IoT Device SDK C++ v2  1.34.0
AWS IoT Device SDK C++ v2
Bootstrap.h
Go to the documentation of this file.
1 #pragma once
2 
7 #include <aws/crt/Exports.h>
8 #include <aws/crt/Types.h>
11 
12 #include <aws/io/channel_bootstrap.h>
13 #include <aws/io/host_resolver.h>
14 
15 #include <future>
16 
17 namespace Aws
18 {
19  namespace Crt
20  {
21  namespace Io
22  {
23  using OnClientBootstrapShutdownComplete = std::function<void()>;
24 
35  {
36  public:
43  EventLoopGroup &elGroup,
44  HostResolver &resolver,
45  Allocator *allocator = ApiAllocator()) noexcept;
46 
52  ClientBootstrap(Allocator *allocator = ApiAllocator()) noexcept;
53 
54  ~ClientBootstrap();
55  ClientBootstrap(const ClientBootstrap &) = delete;
59 
63  operator bool() const noexcept;
64 
68  int LastError() const noexcept;
69 
76  void SetShutdownCompleteCallback(OnClientBootstrapShutdownComplete callback);
77 
90  void EnableBlockingShutdown() noexcept;
91 
93  aws_client_bootstrap *GetUnderlyingHandle() const noexcept;
94 
95  private:
96  aws_client_bootstrap *m_bootstrap;
97  int m_lastError;
98  std::unique_ptr<class ClientBootstrapCallbackData> m_callbackData;
99  std::future<void> m_shutdownFuture;
100  bool m_enableBlockingShutdown;
101  };
102  } // namespace Io
103  } // namespace Crt
104 } // namespace Aws
Aws::Crt::Io::ClientBootstrap::operator=
ClientBootstrap & operator=(const ClientBootstrap &)=delete
Aws::Crt::ApiAllocator
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
EventLoopGroup.h
Aws::Crt::Io::ClientBootstrap::ClientBootstrap
ClientBootstrap(const ClientBootstrap &)=delete
Aws::Crt::LastError
AWS_CRT_CPP_API int LastError() noexcept
Definition: Api.cpp:422
Aws::Crt::Io::ClientBootstrap::ClientBootstrap
ClientBootstrap(ClientBootstrap &&)=delete
Aws::Crt::Io::OnClientBootstrapShutdownComplete
std::function< void()> OnClientBootstrapShutdownComplete
Definition: Bootstrap.h:23
Aws::Crt::Io::ClientBootstrap::operator=
ClientBootstrap & operator=(ClientBootstrap &&)=delete
Types.h
Aws::Crt::Io::HostResolver
Definition: HostResolver.h:35
std
Definition: StringView.h:852
AWS_CRT_CPP_API
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Aws
Definition: Allocator.h:11
Aws::Crt::Allocator
aws_allocator Allocator
Definition: Allocator.h:14
HostResolver.h
Exports.h
Aws::Crt::Io::ClientBootstrap
Definition: Bootstrap.h:35
Aws::Crt::Io::EventLoopGroup
Definition: EventLoopGroup.h:33