AWS IoT Device SDK C++ v2  1.39.0
AWS IoT Device SDK C++ v2
EventStreamClient.h
Go to the documentation of this file.
1 #pragma once
2 
8 
9 #include <aws/crt/DateTime.h>
10 #include <aws/crt/JsonObject.h>
11 #include <aws/crt/StlAllocator.h>
12 #include <aws/crt/Types.h>
14 #include <aws/crt/io/TlsOptions.h>
15 
16 #include <aws/event-stream/event_stream_rpc_client.h>
17 
18 #include <functional>
19 #include <future>
20 
21 namespace Aws
22 {
23  namespace Crt
24  {
25  namespace Io
26  {
27  class ClientBootstrap;
28  }
29  } // namespace Crt
30  namespace Eventstreamrpc
31  {
32  class EventStreamHeader;
33  class MessageAmendment;
34  class ClientOperation;
35  class ClientConnection;
37 
38  using HeaderValueType = aws_event_stream_header_value_type;
39  using MessageType = aws_event_stream_rpc_message_type;
40 
45  using OnMessageFlushCallback = std::function<void(int errorCode)>;
46 
52  using ConnectMessageAmender = std::function<const MessageAmendment &(void)>;
53 
58  {
59  public:
60  EventStreamHeader(const EventStreamHeader &lhs) noexcept;
61  EventStreamHeader(EventStreamHeader &&rhs) noexcept;
62  explicit EventStreamHeader(
63  const struct aws_event_stream_header_value_pair &header,
64  Crt::Allocator *allocator = Crt::g_allocator);
66  const Crt::String &name,
67  const Crt::String &value,
68  Crt::Allocator *allocator = Crt::g_allocator) noexcept;
69 
70  ~EventStreamHeader() noexcept;
71 
72  EventStreamHeader &operator=(const EventStreamHeader &lhs) noexcept;
73 
74  Crt::String GetHeaderName() const noexcept;
75 
76  bool GetValueAsString(Crt::String &) const noexcept;
77 
78  const struct aws_event_stream_header_value_pair *GetUnderlyingHandle() const;
79 
80  private:
81  Crt::Allocator *m_allocator;
82  Crt::ByteBuf m_valueByteBuf;
83  struct aws_event_stream_header_value_pair m_underlyingHandle;
84  };
85 
92  {
93  public:
94  explicit MessageAmendment(Crt::Allocator *allocator = Crt::g_allocator) noexcept;
96  MessageAmendment(MessageAmendment &&rhs) noexcept;
98  const Crt::List<EventStreamHeader> &headers,
100  Crt::Allocator *allocator) noexcept;
101  explicit MessageAmendment(
102  const Crt::List<EventStreamHeader> &headers,
103  Crt::Allocator *allocator = Crt::g_allocator) noexcept;
104  explicit MessageAmendment(
106  Crt::Allocator *allocator = Crt::g_allocator) noexcept;
107  explicit MessageAmendment(
108  const Crt::ByteBuf &payload,
109  Crt::Allocator *allocator = Crt::g_allocator) noexcept;
110 
111  ~MessageAmendment() noexcept;
112 
113  MessageAmendment &operator=(const MessageAmendment &lhs);
114  MessageAmendment &operator=(MessageAmendment &&rhs) noexcept;
115 
119  void AddHeader(EventStreamHeader &&header) noexcept;
120 
124  void PrependHeaders(Crt::List<EventStreamHeader> &&headers);
125  void SetPayload(const Crt::Optional<Crt::ByteBuf> &payload) noexcept;
126  void SetPayload(Crt::Optional<Crt::ByteBuf> &&payload);
127  const Crt::List<EventStreamHeader> &GetHeaders() const & noexcept;
128  Crt::List<EventStreamHeader> &&GetHeaders() &&;
129  const Crt::Optional<Crt::ByteBuf> &GetPayload() const & noexcept;
130  Crt::Optional<Crt::ByteBuf> &&GetPayload() &&;
131 
132  private:
134  Crt::Optional<Crt::ByteBuf> m_payload;
135  Crt::Allocator *m_allocator;
136  };
137 
139  {
154  };
155 
160  {
161  public:
162  ConnectionConfig() noexcept : m_clientBootstrap(nullptr), m_connectRequestCallback(nullptr) {}
163  Crt::Optional<Crt::String> GetHostName() const noexcept { return m_hostName; }
164  Crt::Optional<uint32_t> GetPort() const noexcept { return m_port; }
165  Crt::Optional<Crt::Io::SocketOptions> GetSocketOptions() const noexcept { return m_socketOptions; }
166  Crt::Optional<MessageAmendment> GetConnectAmendment() const noexcept { return m_connectAmendment; }
168  {
169  return m_tlsConnectionOptions;
170  }
171  Crt::Io::ClientBootstrap *GetClientBootstrap() const noexcept { return m_clientBootstrap; }
172  OnMessageFlushCallback GetConnectRequestCallback() const noexcept { return m_connectRequestCallback; }
174  {
175  return [&]() -> const MessageAmendment & { return m_connectAmendment; };
176  }
177 
178  void SetHostName(Crt::String hostName) noexcept { m_hostName = std::move(hostName); }
179  void SetPort(uint32_t port) noexcept { m_port = port; }
180  void SetSocketOptions(const Crt::Io::SocketOptions &socketOptions) noexcept
181  {
182  m_socketOptions = socketOptions;
183  }
184  void SetConnectAmendment(const MessageAmendment &connectAmendment) noexcept
185  {
186  m_connectAmendment = connectAmendment;
187  }
188  void SetTlsConnectionOptions(Crt::Io::TlsConnectionOptions tlsConnectionOptions) noexcept
189  {
190  m_tlsConnectionOptions = std::move(tlsConnectionOptions);
191  }
192  void SetClientBootstrap(Crt::Io::ClientBootstrap *clientBootstrap) noexcept
193  {
194  m_clientBootstrap = clientBootstrap;
195  }
196  void SetConnectRequestCallback(OnMessageFlushCallback connectRequestCallback) noexcept
197  {
198  m_connectRequestCallback = std::move(connectRequestCallback);
199  }
200 
201  EventStreamRpcStatusCode Validate() const noexcept;
202 
203  protected:
204  Crt::Optional<Crt::String> m_hostName;
205  Crt::Optional<uint32_t> m_port;
206  Crt::Optional<Crt::Io::SocketOptions> m_socketOptions;
207  Crt::Optional<Crt::Io::TlsConnectionOptions> m_tlsConnectionOptions;
208  Crt::Io::ClientBootstrap *m_clientBootstrap;
209  MessageAmendment m_connectAmendment;
210  OnMessageFlushCallback m_connectRequestCallback;
211  };
212 
214  {
215  explicit operator bool() const noexcept { return baseStatus == EVENT_STREAM_RPC_SUCCESS; }
216  Crt::String StatusToString() const;
217 
219  int crtError;
220  };
221 
226  {
227  public:
228  virtual ~ConnectionLifecycleHandler() noexcept = default;
229 
235  virtual void OnConnectCallback();
236 
242  virtual void OnDisconnectCallback(RpcError status);
243 
249  virtual bool OnErrorCallback(RpcError status);
250 
255  virtual void OnPingCallback(
256  const Crt::List<EventStreamHeader> &headers,
257  const Crt::Optional<Crt::ByteBuf> &payload);
258  };
259 
260  class ClientConnectionImpl;
262 
267  {
268  public:
269  ClientConnection(Crt::Allocator *allocator, aws_client_bootstrap *bootstrap) noexcept;
270  ~ClientConnection() noexcept;
271 
278  std::future<RpcError> Connect(
279  const ConnectionConfig &connectionOptions,
280  ConnectionLifecycleHandler *connectionLifecycleHandler) noexcept;
281 
286  std::shared_ptr<ClientContinuationImpl> NewStream() noexcept;
287 
291  void Close() noexcept;
292 
297  bool IsOpen() const noexcept;
298 
299  private:
300  std::shared_ptr<ClientConnectionImpl> m_impl;
301  };
302 
308  {
309  public:
310  virtual ~ClientContinuationHandler() noexcept = default;
311  };
312 
317  {
318  public:
319  AbstractShapeBase() noexcept;
320  virtual ~AbstractShapeBase() noexcept = default;
321  static void s_customDeleter(AbstractShapeBase *shape) noexcept;
322  virtual void SerializeToJsonObject(Crt::JsonObject &payloadObject) const = 0;
323  virtual Crt::String GetModelName() const noexcept = 0;
324 
325  protected:
326  Crt::Allocator *m_allocator;
327  };
328 
333  {
334  public:
335  explicit OperationError() noexcept = default;
336  static void s_customDeleter(OperationError *shape) noexcept;
337  void SerializeToJsonObject(Crt::JsonObject &payloadObject) const override;
338  virtual Crt::Optional<Crt::String> GetMessage() const noexcept = 0;
339  };
340 
347  {
348  public:
349  virtual ~StreamResponseHandler() noexcept = default;
350 
354  virtual void OnStreamClosed();
355 
356  protected:
361  virtual void OnStreamEvent(Crt::ScopedResource<AbstractShapeBase> response);
367  virtual bool OnStreamError(Crt::ScopedResource<OperationError> operationError, RpcError rpcError);
368  };
369 
371  {
375  RPC_ERROR
376  };
377 
379  {
380  public:
382  explicit EventstreamResultVariantType(Crt::ScopedResource<AbstractShapeBase> &&modeledResponse) noexcept;
383  explicit EventstreamResultVariantType(Crt::ScopedResource<OperationError> &&modeledError) noexcept;
384  explicit EventstreamResultVariantType(RpcError rpcError) noexcept;
387 
389 
390  ResultType GetType() const { return m_type; }
391 
392  AbstractShapeBase *GetModeledResponse() const;
393 
394  OperationError *GetModeledError() const;
395 
396  RpcError GetRpcError() const;
397 
398  private:
399  ResultType m_type;
400 
401  Crt::ScopedResource<AbstractShapeBase> m_modeledResponse;
403  RpcError m_rpcError;
404  };
405 
406  using ExpectedResponseFactory = std::function<
408  using ErrorResponseFactory = std::function<
410 
411  using LoneResponseRetriever = std::function<ExpectedResponseFactory(const Crt::String &modelName)>;
412  using StreamingResponseRetriever = std::function<ExpectedResponseFactory(const Crt::String &modelName)>;
413  using ErrorResponseRetriever = std::function<ErrorResponseFactory(const Crt::String &modelName)>;
414 
416  {
417  /* An interface shared by all operations for retrieving the response object given the model name. */
418  public:
419  virtual ~ResponseRetriever() noexcept = default;
420  virtual ExpectedResponseFactory GetInitialResponseFromModelName(
421  const Crt::String &modelName) const noexcept = 0;
422  virtual ExpectedResponseFactory GetStreamingResponseFromModelName(
423  const Crt::String &modelName) const noexcept = 0;
424  virtual ErrorResponseFactory GetOperationErrorFromModelName(
425  const Crt::String &modelName) const noexcept = 0;
426  };
427 
429  {
430  public:
431  virtual ~ServiceModel() noexcept = default;
432  virtual Crt::ScopedResource<OperationError> AllocateOperationErrorFromPayload(
433  const Crt::String &errorModelName,
434  Crt::StringView stringView,
435  Crt::Allocator *allocator) const noexcept = 0;
436  };
437 
442  {
443  public:
444  explicit OperationModelContext(const ServiceModel &serviceModel) noexcept;
445 
446  virtual ~OperationModelContext() noexcept = default;
447 
454  virtual Crt::ScopedResource<AbstractShapeBase> AllocateInitialResponseFromPayload(
455  Crt::StringView stringView,
456  Crt::Allocator *allocator) const noexcept = 0;
457 
464  virtual Crt::ScopedResource<AbstractShapeBase> AllocateStreamingResponseFromPayload(
465  Crt::StringView stringView,
466  Crt::Allocator *allocator) const noexcept = 0;
467 
472  virtual Crt::String GetInitialResponseModelName() const noexcept = 0;
473 
478  virtual Crt::String GetRequestModelName() const noexcept = 0;
479 
484  virtual Crt::Optional<Crt::String> GetStreamingResponseModelName() const noexcept = 0;
485 
492  virtual Crt::String GetOperationName() const noexcept = 0;
493 
501  Crt::ScopedResource<OperationError> AllocateOperationErrorFromPayload(
502  const Crt::String &errorModelName,
503  Crt::StringView stringView,
504  Crt::Allocator *allocator) const noexcept
505  {
506  return m_serviceModel.AllocateOperationErrorFromPayload(errorModelName, stringView, allocator);
507  }
508 
509  private:
510  const ServiceModel &m_serviceModel;
511  };
512 
517  {
518  public:
520  ClientConnection &connection,
521  std::shared_ptr<StreamResponseHandler> streamHandler,
522  const std::shared_ptr<OperationModelContext> &operationModelContext,
523  Crt::Allocator *allocator) noexcept;
524  ~ClientOperation() noexcept override;
525 
526  ClientOperation(const ClientOperation &clientOperation) noexcept = delete;
527  ClientOperation(ClientOperation &&clientOperation) noexcept = delete;
528  bool operator=(const ClientOperation &clientOperation) noexcept = delete;
529  bool operator=(ClientOperation &&clientOperation) noexcept = delete;
530 
538  std::future<RpcError> Close(OnMessageFlushCallback onMessageFlushCallback = nullptr) noexcept;
539 
547  void WithLaunchMode(std::launch mode) noexcept;
548 
549  protected:
557  std::future<RpcError> Activate(
558  const AbstractShapeBase *shape,
559  OnMessageFlushCallback &&onMessageFlushCallback,
560  std::function<void(EventstreamResultVariantType &&)> &&onResultCallback) noexcept;
561 
570  std::future<RpcError> SendStreamMessage(
571  const AbstractShapeBase *shape,
572  OnMessageFlushCallback &&onMessageFlushCallback) noexcept;
573 
579  virtual Crt::String GetModelName() const noexcept;
580 
581  private:
582  Aws::Crt::Allocator *m_allocator;
583 
584  std::shared_ptr<ClientContinuationImpl> m_impl;
585  };
586 
587  } // namespace Eventstreamrpc
588 } // namespace Aws
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CONTINUATION_CLOSED
@ EVENT_STREAM_RPC_CONTINUATION_CLOSED
Definition: EventStreamClient.h:148
Aws::Eventstreamrpc::ConnectionConfig::GetClientBootstrap
Crt::Io::ClientBootstrap * GetClientBootstrap() const noexcept
Definition: EventStreamClient.h:171
Aws::Eventstreamrpc::RpcError
Definition: EventStreamClient.h:214
Aws::Eventstreamrpc::EventstreamResultVariantType::~EventstreamResultVariantType
~EventstreamResultVariantType()=default
Aws::Eventstreamrpc::ConnectionConfig::SetSocketOptions
void SetSocketOptions(const Crt::Io::SocketOptions &socketOptions) noexcept
Definition: EventStreamClient.h:180
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CRT_ERROR
@ EVENT_STREAM_RPC_CRT_ERROR
Definition: EventStreamClient.h:152
Aws::Eventstreamrpc::ConnectionLifecycleHandler
Definition: EventStreamClient.h:226
Aws::Eventstreamrpc::OperationError
Definition: EventStreamClient.h:333
Aws::Eventstreamrpc::RPC_ERROR
@ RPC_ERROR
Definition: EventStreamClient.h:375
Aws::Eventstreamrpc::NONE
@ NONE
Definition: EventStreamClient.h:372
Aws::Eventstreamrpc::EVENT_STREAM_RPC_ALLOCATION_ERROR
@ EVENT_STREAM_RPC_ALLOCATION_ERROR
Definition: EventStreamClient.h:143
Aws::Eventstreamrpc::EventstreamResultVariantType::GetType
ResultType GetType() const
Definition: EventStreamClient.h:390
Aws::Eventstreamrpc::LoneResponseRetriever
std::function< ExpectedResponseFactory(const Crt::String &modelName)> LoneResponseRetriever
Definition: EventStreamClient.h:411
Aws::Crt::ScopedResource
std::unique_ptr< T, std::function< void(T *)> > ScopedResource
Definition: Types.h:163
JsonObject.h
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CONNECTION_CLOSED
@ EVENT_STREAM_RPC_CONNECTION_CLOSED
Definition: EventStreamClient.h:147
Aws::Eventstreamrpc::EventStreamRpcStatusCode
EventStreamRpcStatusCode
Definition: EventStreamClient.h:139
TlsOptions.h
Aws::Eventstreamrpc::RpcError::crtError
int crtError
Definition: EventStreamClient.h:219
DateTime.h
Aws::Eventstreamrpc::ConnectionConfig::GetConnectRequestCallback
OnMessageFlushCallback GetConnectRequestCallback() const noexcept
Definition: EventStreamClient.h:172
Aws::Eventstreamrpc::ClientOperation::operator=
bool operator=(const ClientOperation &clientOperation) noexcept=delete
Aws::Eventstreamrpc::HeaderValueType
aws_event_stream_header_value_type HeaderValueType
Definition: EventStreamClient.h:38
Aws::Eventstreamrpc::EventStreamHeader
Definition: EventStreamClient.h:58
StlAllocator.h
Aws::Eventstreamrpc::ConnectionConfig::SetConnectAmendment
void SetConnectAmendment(const MessageAmendment &connectAmendment) noexcept
Definition: EventStreamClient.h:184
Aws::Crt::List
std::list< T, StlAllocator< T > > List
Definition: Types.h:54
Aws::Eventstreamrpc::StreamingResponseRetriever
std::function< ExpectedResponseFactory(const Crt::String &modelName)> StreamingResponseRetriever
Definition: EventStreamClient.h:412
Aws::Crt::Io::TlsConnectionOptions
Definition: TlsOptions.h:293
Aws::Eventstreamrpc::OPERATION_ERROR
@ OPERATION_ERROR
Definition: EventStreamClient.h:374
Aws::Eventstreamrpc::ClientConnection
Definition: EventStreamClient.h:267
Aws::Eventstreamrpc::ClientOperation::ClientOperation
ClientOperation(ClientOperation &&clientOperation) noexcept=delete
Aws::Eventstreamrpc::ServiceModel::~ServiceModel
virtual ~ServiceModel() noexcept=default
Aws::Eventstreamrpc::EVENT_STREAM_RPC_UNMAPPED_DATA
@ EVENT_STREAM_RPC_UNMAPPED_DATA
Definition: EventStreamClient.h:150
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CONNECTION_ALREADY_ESTABLISHED
@ EVENT_STREAM_RPC_CONNECTION_ALREADY_ESTABLISHED
Definition: EventStreamClient.h:146
Aws::Eventstreamrpc::ClientConnectionImpl
Definition: EventStreamClient.cpp:697
Aws::Eventstreamrpc::ClientOperation::operator=
bool operator=(ClientOperation &&clientOperation) noexcept=delete
Aws::Eventstreamrpc::ClientContinuationHandler
Definition: EventStreamClient.h:308
Aws::Eventstreamrpc::ConnectionConfig
Definition: EventStreamClient.h:160
Aws::Eventstreamrpc::StreamResponseHandler
Definition: EventStreamClient.h:347
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CONNECTION_SETUP_FAILED
@ EVENT_STREAM_RPC_CONNECTION_SETUP_FAILED
Definition: EventStreamClient.h:144
Aws::Eventstreamrpc::ClientContinuationHandler::~ClientContinuationHandler
virtual ~ClientContinuationHandler() noexcept=default
Aws::Eventstreamrpc::RpcError::baseStatus
EventStreamRpcStatusCode baseStatus
Definition: EventStreamClient.h:218
Aws::Eventstreamrpc::ClientOperation::ClientOperation
ClientOperation(const ClientOperation &clientOperation) noexcept=delete
Exports.h
Aws::Eventstreamrpc::ConnectionConfig::GetConnectMessageAmender
ConnectMessageAmender GetConnectMessageAmender() const noexcept
Definition: EventStreamClient.h:173
Aws::Eventstreamrpc::OperationModelContext::~OperationModelContext
virtual ~OperationModelContext() noexcept=default
Aws::Eventstreamrpc::AbstractShapeBase::~AbstractShapeBase
virtual ~AbstractShapeBase() noexcept=default
Aws::Eventstreamrpc::ResponseRetriever
Definition: EventStreamClient.h:416
Aws::Eventstreamrpc::ConnectionConfig::GetTlsConnectionOptions
Crt::Optional< Crt::Io::TlsConnectionOptions > GetTlsConnectionOptions() const noexcept
Definition: EventStreamClient.h:167
Aws::Eventstreamrpc::ConnectMessageAmender
std::function< const MessageAmendment &(void)> ConnectMessageAmender
Definition: EventStreamClient.h:52
Aws::Eventstreamrpc::ConnectionConfig::ConnectionConfig
ConnectionConfig() noexcept
Definition: EventStreamClient.h:162
Aws::Eventstreamrpc::ConnectionConfig::SetPort
void SetPort(uint32_t port) noexcept
Definition: EventStreamClient.h:179
Aws::Crt::Optional< Crt::ByteBuf >
Aws::Eventstreamrpc::ErrorResponseFactory
std::function< Crt::ScopedResource< OperationError >(const Crt::StringView &payload, Crt::Allocator *allocator)> ErrorResponseFactory
Definition: EventStreamClient.h:409
Aws::Crt::g_allocator
AWS_CRT_CPP_API Allocator * g_allocator
Definition: Allocator.cpp:22
Aws::Eventstreamrpc::ClientOperation
Definition: EventStreamClient.h:517
Aws::Eventstreamrpc::ExpectedResponseFactory
std::function< Crt::ScopedResource< AbstractShapeBase >(const Crt::StringView &payload, Crt::Allocator *allocator)> ExpectedResponseFactory
Definition: EventStreamClient.h:407
Aws::Eventstreamrpc::ErrorResponseRetriever
std::function< ErrorResponseFactory(const Crt::String &modelName)> ErrorResponseRetriever
Definition: EventStreamClient.h:413
Aws::Eventstreamrpc::OPERATION_RESPONSE
@ OPERATION_RESPONSE
Definition: EventStreamClient.h:373
Aws::Eventstreamrpc::ConnectionConfig::GetConnectAmendment
Crt::Optional< MessageAmendment > GetConnectAmendment() const noexcept
Definition: EventStreamClient.h:166
Aws::Eventstreamrpc::ResultType
ResultType
Definition: EventStreamClient.h:371
Aws::Eventstreamrpc::EVENT_STREAM_RPC_SUCCESS
@ EVENT_STREAM_RPC_SUCCESS
Definition: EventStreamClient.h:140
Types.h
Aws::Eventstreamrpc::ServiceModel
Definition: EventStreamClient.h:429
Aws::Eventstreamrpc::ConnectionConfig::SetConnectRequestCallback
void SetConnectRequestCallback(OnMessageFlushCallback connectRequestCallback) noexcept
Definition: EventStreamClient.h:196
Aws::Eventstreamrpc::EVENT_STREAM_RPC_UNINITIALIZED
@ EVENT_STREAM_RPC_UNINITIALIZED
Definition: EventStreamClient.h:142
Aws::Eventstreamrpc::OperationError::OperationError
OperationError() noexcept=default
Aws::Eventstreamrpc::EVENT_STREAM_RPC_UNKNOWN_PROTOCOL_MESSAGE
@ EVENT_STREAM_RPC_UNKNOWN_PROTOCOL_MESSAGE
Definition: EventStreamClient.h:149
Aws::Eventstreamrpc::OnMessageFlushCallback
std::function< void(int errorCode)> OnMessageFlushCallback
Definition: EventStreamClient.h:45
Aws::Crt::StringView
string_view StringView
Definition: StringView.h:856
Aws::Crt::Io::SocketOptions
Definition: SocketOptions.h:48
Aws::Eventstreamrpc::ConnectionConfig::SetTlsConnectionOptions
void SetTlsConnectionOptions(Crt::Io::TlsConnectionOptions tlsConnectionOptions) noexcept
Definition: EventStreamClient.h:188
Aws::Crt::basic_string_view
Definition: StringView.h:33
Aws::Crt::ByteBuf
aws_byte_buf ByteBuf
Definition: Types.h:30
std
Definition: StringView.h:862
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CONTINUATION_NOT_YET_OPENED
@ EVENT_STREAM_RPC_CONTINUATION_NOT_YET_OPENED
Definition: EventStreamClient.h:153
Aws::Eventstreamrpc::EVENT_STREAM_RPC_NULL_PARAMETER
@ EVENT_STREAM_RPC_NULL_PARAMETER
Definition: EventStreamClient.h:141
Aws
Definition: Allocator.h:11
Aws::Eventstreamrpc::ConnectionLifecycleHandler::~ConnectionLifecycleHandler
virtual ~ConnectionLifecycleHandler() noexcept=default
SocketOptions.h
Aws::Eventstreamrpc::EventstreamResultVariantType
Definition: EventStreamClient.h:379
Aws::Eventstreamrpc::StreamResponseHandler::~StreamResponseHandler
virtual ~StreamResponseHandler() noexcept=default
Aws::Crt::Allocator
aws_allocator Allocator
Definition: Allocator.h:14
Aws::Eventstreamrpc::EVENT_STREAM_RPC_CONNECTION_ACCESS_DENIED
@ EVENT_STREAM_RPC_CONNECTION_ACCESS_DENIED
Definition: EventStreamClient.h:145
Aws::Eventstreamrpc::ConnectionConfig::SetClientBootstrap
void SetClientBootstrap(Crt::Io::ClientBootstrap *clientBootstrap) noexcept
Definition: EventStreamClient.h:192
AWS_EVENTSTREAMRPC_API
#define AWS_EVENTSTREAMRPC_API
Definition: Exports.h:19
Aws::Eventstreamrpc::ResponseRetriever::~ResponseRetriever
virtual ~ResponseRetriever() noexcept=default
Aws::Crt::Io::ClientBootstrap
Definition: Bootstrap.h:35
Aws::Eventstreamrpc::OperationModelContext
Definition: EventStreamClient.h:442
Aws::Eventstreamrpc::AbstractShapeBase
Definition: EventStreamClient.h:317
Aws::Eventstreamrpc::ConnectionConfig::GetSocketOptions
Crt::Optional< Crt::Io::SocketOptions > GetSocketOptions() const noexcept
Definition: EventStreamClient.h:165
Aws::Eventstreamrpc::EVENT_STREAM_RPC_UNSUPPORTED_CONTENT_TYPE
@ EVENT_STREAM_RPC_UNSUPPORTED_CONTENT_TYPE
Definition: EventStreamClient.h:151
Aws::Eventstreamrpc::MessageAmendment
Definition: EventStreamClient.h:92
Aws::Eventstreamrpc::MessageType
aws_event_stream_rpc_message_type MessageType
Definition: EventStreamClient.h:39
Aws::Eventstreamrpc::ConnectionConfig::SetHostName
void SetHostName(Crt::String hostName) noexcept
Definition: EventStreamClient.h:178
Aws::Crt::String
std::basic_string< char, std::char_traits< char >, StlAllocator< char > > String
Definition: Types.h:45
Aws::Eventstreamrpc::ConnectionConfig::GetHostName
Crt::Optional< Crt::String > GetHostName() const noexcept
Definition: EventStreamClient.h:163
Aws::Eventstreamrpc::ConnectionConfig::GetPort
Crt::Optional< uint32_t > GetPort() const noexcept
Definition: EventStreamClient.h:164
Aws::Eventstreamrpc::ClientContinuationImpl
Definition: EventStreamClient.cpp:1418