AWS IoT Device SDK C++ v2
1.35.0
AWS IoT Device SDK C++ v2
|
Go to the documentation of this file.
13 #include <aws/mqtt/request-response/request_response_client.h>
35 namespace RequestResponse
46 SubscriptionEstablished = ARRSSET_SUBSCRIPTION_ESTABLISHED,
51 SubscriptionLost = ARRSSET_SUBSCRIPTION_LOST,
87 m_errorCode = errorCode;
126 AWS_ZERO_STRUCT(m_topic);
127 AWS_ZERO_STRUCT(m_payload);
193 AWS_ZERO_STRUCT(m_payload);
194 AWS_ZERO_STRUCT(m_topic);
254 template <
typename R,
typename E>
class Result
259 explicit Result(
const R &response) : m_rawResult(response) {}
260 explicit Result(R &&response) : m_rawResult(
std::move(response)) {}
261 explicit Result(
const E &error) : m_rawResult(error) {}
262 explicit Result(E &&error) : m_rawResult(
std::move(error)) {}
266 this->m_rawResult = response;
273 this->m_rawResult = std::move(response);
280 this->m_rawResult = error;
286 this->m_rawResult = std::move(error);
291 bool IsSuccess()
const {
return m_rawResult.template holds_alternative<R>(); }
297 return m_rawResult.template get<R>();
304 return m_rawResult.template get<E>();
341 m_subscriptionStatusEventHandler = handler;
353 m_streamHandler = handler;
364 return m_subscriptionStatusEventHandler;
377 std::function<void(T &&)> m_streamHandler;
390 : subscriptionTopicFilter(), subscriptionStatusEventHandler(), incomingPublishEventHandler()
392 AWS_ZERO_STRUCT(subscriptionTopicFilter);
437 uint32_t maxRequestResponseSubscriptions)
439 m_maxRequestResponseSubscriptions = maxRequestResponseSubscriptions;
454 m_maxStreamingSubscriptions = maxStreamingSubscriptions;
468 m_operationTimeoutInSeconds = operationTimeoutInSeconds;
499 uint32_t m_maxRequestResponseSubscriptions = 0;
504 uint32_t m_maxStreamingSubscriptions = 0;
509 uint32_t m_operationTimeoutInSeconds = 0;
532 const aws_mqtt_request_operation_options &requestOptions,
Definition: MqttRequestResponseClient.h:516
Result(R &&response)
Definition: MqttRequestResponseClient.h:260
virtual ~IMqttRequestResponseClient()=default
Definition: MqttRequestResponseClient.h:406
Definition: MqttRequestResponseClient.h:65
@ SubscriptionEstablished
virtual int SubmitRequest(const aws_mqtt_request_operation_options &requestOptions, UnmodeledResultHandler &&resultHandler)=0
StreamingOperationOptions & WithSubscriptionStatusEventHandler(const SubscriptionStatusEventHandler &handler)
Definition: MqttRequestResponseClient.h:338
const E & GetError() const
Definition: MqttRequestResponseClient.h:300
SubscriptionStatusEvent & WithErrorCode(int errorCode)
Definition: MqttRequestResponseClient.h:85
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
StreamingOperationOptionsInternal()
Definition: MqttRequestResponseClient.h:389
const R & GetResponse() const
Definition: MqttRequestResponseClient.h:293
std::function< void(IncomingPublishEvent &&)> IncomingPublishEventHandler
Definition: MqttRequestResponseClient.h:178
RequestResponseClientOptions & WithMaxRequestResponseSubscriptions(uint32_t maxRequestResponseSubscriptions)
Definition: MqttRequestResponseClient.h:436
UnmodeledResponse()
Definition: MqttRequestResponseClient.h:191
virtual std::shared_ptr< IStreamingOperation > CreateStream(const StreamingOperationOptionsInternal &options)=0
AWS_CRT_CPP_API std::shared_ptr< IMqttRequestResponseClient > NewClientFrom5(const Aws::Crt::Mqtt5::Mqtt5Client &protocolClient, const RequestResponseClientOptions &options, Aws::Crt::Allocator *allocator=Aws::Crt::ApiAllocator())
Definition: MqttRequestResponseClient.cpp:455
RequestResponseClientOptions & WithOperationTimeoutInSeconds(uint32_t operationTimeoutInSeconds)
Definition: MqttRequestResponseClient.h:466
UnmodeledResponse & WithTopic(Aws::Crt::ByteCursor topic)
Definition: MqttRequestResponseClient.h:215
const SubscriptionStatusEventHandler & GetSubscriptionStatusEventHandler() const
Definition: MqttRequestResponseClient.h:362
SubscriptionStatusEvent & WithType(SubscriptionStatusEventType type)
Definition: MqttRequestResponseClient.h:73
int GetErrorCode() const
Definition: MqttRequestResponseClient.h:101
Definition: MqttRequestResponseClient.h:387
SubscriptionStatusEventType
Definition: MqttRequestResponseClient.h:41
Definition: MqttConnection.h:158
Result(const E &error)
Definition: MqttRequestResponseClient.h:261
Definition: Mqtt5Client.h:332
IncomingPublishEventHandler incomingPublishEventHandler
Definition: MqttRequestResponseClient.h:399
uint32_t GetOperationTimeoutInSeconds() const
Definition: MqttRequestResponseClient.h:493
Definition: MqttRequestResponseClient.h:424
Result & operator=(const E &error)
Definition: MqttRequestResponseClient.h:278
uint32_t GetMaxStreamingSubscriptions() const
Definition: MqttRequestResponseClient.h:486
Definition: MqttRequestResponseClient.h:186
uint32_t GetMaxRequestResponseSubscriptions() const
Definition: MqttRequestResponseClient.h:479
Definition: MqttRequestResponseClient.h:119
SubscriptionStatusEventType GetType() const
Definition: MqttRequestResponseClient.h:95
Definition: MqttRequestResponseClient.h:255
Result & operator=(const R &response)
Definition: MqttRequestResponseClient.h:264
IncomingPublishEvent()
Definition: MqttRequestResponseClient.h:124
Result & operator=(E &&error)
Definition: MqttRequestResponseClient.h:284
Result & operator=(R &&response)
Definition: MqttRequestResponseClient.h:271
std::function< void(SubscriptionStatusEvent &&)> SubscriptionStatusEventHandler
Definition: MqttRequestResponseClient.h:111
Result(E &&error)
Definition: MqttRequestResponseClient.h:262
Aws::Crt::ByteCursor GetTopic() const
Definition: MqttRequestResponseClient.h:159
AWS_CRT_CPP_API std::shared_ptr< IMqttRequestResponseClient > NewClientFrom311(const Aws::Crt::Mqtt::MqttConnection &protocolClient, const RequestResponseClientOptions &options, Aws::Crt::Allocator *allocator=Aws::Crt::ApiAllocator())
Definition: MqttRequestResponseClient.cpp:484
virtual ~IStreamingOperation()=default
bool IsSuccess() const
Definition: MqttRequestResponseClient.h:291
StreamingOperationOptions & WithStreamHandler(const std::function< void(T &&)> &handler)
Definition: MqttRequestResponseClient.h:351
Definition: StringView.h:852
#define AWS_CRT_CPP_API
Definition: Exports.h:37
Aws::Crt::ByteCursor GetPayload() const
Definition: MqttRequestResponseClient.h:166
IncomingPublishEvent & WithPayload(Aws::Crt::ByteCursor payload)
Definition: MqttRequestResponseClient.h:148
Definition: Allocator.h:11
aws_byte_cursor ByteCursor
Definition: Types.h:31
aws_allocator Allocator
Definition: Allocator.h:14
Definition: MqttRequestResponseClient.h:330
SubscriptionStatusEventHandler subscriptionStatusEventHandler
Definition: MqttRequestResponseClient.h:397
Aws::Crt::ByteCursor subscriptionTopicFilter
Definition: MqttRequestResponseClient.h:395
std::function< void(UnmodeledResult &&)> UnmodeledResultHandler
Definition: MqttRequestResponseClient.h:322
RequestResponseClientOptions & WithMaxStreamingSubscriptions(uint32_t maxStreamingSubscriptions)
Definition: MqttRequestResponseClient.h:452
Result(const R &response)
Definition: MqttRequestResponseClient.h:259
UnmodeledResponse & WithPayload(Aws::Crt::ByteCursor payload)
Definition: MqttRequestResponseClient.h:203
Aws::Crt::ByteCursor GetPayload() const
Definition: MqttRequestResponseClient.h:226
IncomingPublishEvent & WithTopic(Aws::Crt::ByteCursor topic)
Definition: MqttRequestResponseClient.h:136
Aws::Crt::ByteCursor GetTopic() const
Definition: MqttRequestResponseClient.h:233
const std::function< void(T &&)> & GetStreamHandler() const
Definition: MqttRequestResponseClient.h:372