AWS IoT Device SDK C++ v2
1.36.0
AWS IoT Device SDK C++ v2
|
Go to the documentation of this file.
14 #include <aws/mqtt/request-response/request_response_client.h>
36 namespace RequestResponse
47 SubscriptionEstablished = ARRSSET_SUBSCRIPTION_ESTABLISHED,
52 SubscriptionLost = ARRSSET_SUBSCRIPTION_LOST,
88 m_errorCode = errorCode;
141 AWS_ZERO_STRUCT(m_topic);
142 AWS_ZERO_STRUCT(m_payload);
177 m_contentType = contentType;
189 m_userProperties = std::move(userProperties);
201 m_messageExpiryIntervalSeconds = messageExpiryIntervalSeconds;
232 return m_userProperties;
237 return m_messageExpiryIntervalSeconds;
268 AWS_ZERO_STRUCT(m_payload);
269 AWS_ZERO_STRUCT(m_topic);
329 template <
typename R,
typename E>
class Result
334 explicit Result(
const R &response) : m_rawResult(response) {}
335 explicit Result(R &&response) : m_rawResult(
std::move(response)) {}
336 explicit Result(
const E &error) : m_rawResult(error) {}
337 explicit Result(E &&error) : m_rawResult(
std::move(error)) {}
341 this->m_rawResult = response;
348 this->m_rawResult = std::move(response);
355 this->m_rawResult = error;
361 this->m_rawResult = std::move(error);
366 bool IsSuccess()
const {
return m_rawResult.template holds_alternative<R>(); }
372 return m_rawResult.template get<R>();
379 return m_rawResult.template get<E>();
416 m_subscriptionStatusEventHandler = handler;
428 m_streamHandler = handler;
439 return m_subscriptionStatusEventHandler;
452 std::function<void(T &&)> m_streamHandler;
465 : subscriptionTopicFilter(), subscriptionStatusEventHandler(), incomingPublishEventHandler()
467 AWS_ZERO_STRUCT(subscriptionTopicFilter);
512 uint32_t maxRequestResponseSubscriptions)
514 m_maxRequestResponseSubscriptions = maxRequestResponseSubscriptions;
529 m_maxStreamingSubscriptions = maxStreamingSubscriptions;
543 m_operationTimeoutInSeconds = operationTimeoutInSeconds;
574 uint32_t m_maxRequestResponseSubscriptions = 0;
579 uint32_t m_maxStreamingSubscriptions = 0;
584 uint32_t m_operationTimeoutInSeconds = 0;
607 const aws_mqtt_request_operation_options &requestOptions,
Definition: MqttRequestResponseClient.h:591
IncomingPublishEvent & WithContentType(Aws::Crt::ByteCursor contentType)
Definition: MqttRequestResponseClient.h:175
Result(R &&response)
Definition: MqttRequestResponseClient.h:335
virtual ~IMqttRequestResponseClient()=default
const Aws::Crt::Optional< Aws::Crt::Vector< UserPropertyView > > & GetUserProperties() const
Definition: MqttRequestResponseClient.h:230
Definition: MqttRequestResponseClient.h:481
Definition: MqttRequestResponseClient.h:66
@ SubscriptionEstablished
virtual int SubmitRequest(const aws_mqtt_request_operation_options &requestOptions, UnmodeledResultHandler &&resultHandler)=0
StreamingOperationOptions & WithSubscriptionStatusEventHandler(const SubscriptionStatusEventHandler &handler)
Definition: MqttRequestResponseClient.h:413
const E & GetError() const
Definition: MqttRequestResponseClient.h:375
SubscriptionStatusEvent & WithErrorCode(int errorCode)
Definition: MqttRequestResponseClient.h:86
AWS_CRT_CPP_API Allocator * ApiAllocator() noexcept
Definition: Allocator.cpp:24
const Aws::Crt::Optional< Aws::Crt::ByteCursor > & GetContentType() const
Definition: MqttRequestResponseClient.h:224
IncomingPublishEvent & WithUserProperties(Aws::Crt::Vector< UserPropertyView > userProperties)
Definition: MqttRequestResponseClient.h:187
StreamingOperationOptionsInternal()
Definition: MqttRequestResponseClient.h:464
const R & GetResponse() const
Definition: MqttRequestResponseClient.h:368
std::function< void(IncomingPublishEvent &&)> IncomingPublishEventHandler
Definition: MqttRequestResponseClient.h:253
RequestResponseClientOptions & WithMaxRequestResponseSubscriptions(uint32_t maxRequestResponseSubscriptions)
Definition: MqttRequestResponseClient.h:511
UnmodeledResponse()
Definition: MqttRequestResponseClient.h:266
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:469
RequestResponseClientOptions & WithOperationTimeoutInSeconds(uint32_t operationTimeoutInSeconds)
Definition: MqttRequestResponseClient.h:541
UnmodeledResponse & WithTopic(Aws::Crt::ByteCursor topic)
Definition: MqttRequestResponseClient.h:290
const SubscriptionStatusEventHandler & GetSubscriptionStatusEventHandler() const
Definition: MqttRequestResponseClient.h:437
SubscriptionStatusEvent & WithType(SubscriptionStatusEventType type)
Definition: MqttRequestResponseClient.h:74
int GetErrorCode() const
Definition: MqttRequestResponseClient.h:102
Definition: MqttRequestResponseClient.h:462
SubscriptionStatusEventType
Definition: MqttRequestResponseClient.h:42
Definition: MqttConnection.h:158
Result(const E &error)
Definition: MqttRequestResponseClient.h:336
Definition: Mqtt5Client.h:332
Aws::Crt::ByteCursor m_name
Definition: MqttRequestResponseClient.h:124
IncomingPublishEventHandler incomingPublishEventHandler
Definition: MqttRequestResponseClient.h:474
uint32_t GetOperationTimeoutInSeconds() const
Definition: MqttRequestResponseClient.h:568
const Aws::Crt::Optional< uint32_t > & GetMessageExpiryIntervalSeconds() const
Definition: MqttRequestResponseClient.h:235
Definition: MqttRequestResponseClient.h:499
Result & operator=(const E &error)
Definition: MqttRequestResponseClient.h:353
uint32_t GetMaxStreamingSubscriptions() const
Definition: MqttRequestResponseClient.h:561
Definition: MqttRequestResponseClient.h:261
uint32_t GetMaxRequestResponseSubscriptions() const
Definition: MqttRequestResponseClient.h:554
Definition: MqttRequestResponseClient.h:134
SubscriptionStatusEventType GetType() const
Definition: MqttRequestResponseClient.h:96
Definition: MqttRequestResponseClient.h:330
Result & operator=(const R &response)
Definition: MqttRequestResponseClient.h:339
IncomingPublishEvent()
Definition: MqttRequestResponseClient.h:139
Result & operator=(E &&error)
Definition: MqttRequestResponseClient.h:359
Definition: MqttRequestResponseClient.h:120
Result & operator=(R &&response)
Definition: MqttRequestResponseClient.h:346
std::function< void(SubscriptionStatusEvent &&)> SubscriptionStatusEventHandler
Definition: MqttRequestResponseClient.h:112
Result(E &&error)
Definition: MqttRequestResponseClient.h:337
IncomingPublishEvent & WithMessageExpiryIntervalSeconds(uint32_t messageExpiryIntervalSeconds)
Definition: MqttRequestResponseClient.h:199
Aws::Crt::ByteCursor GetTopic() const
Definition: MqttRequestResponseClient.h:210
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:498
virtual ~IStreamingOperation()=default
bool IsSuccess() const
Definition: MqttRequestResponseClient.h:366
std::vector< T, StlAllocator< T > > Vector
Definition: Types.h:53
StreamingOperationOptions & WithStreamHandler(const std::function< void(T &&)> &handler)
Definition: MqttRequestResponseClient.h:426
Definition: StringView.h:862
#define AWS_CRT_CPP_API
Definition: Exports.h:36
Aws::Crt::ByteCursor GetPayload() const
Definition: MqttRequestResponseClient.h:217
IncomingPublishEvent & WithPayload(Aws::Crt::ByteCursor payload)
Definition: MqttRequestResponseClient.h:163
Definition: Allocator.h:11
aws_byte_cursor ByteCursor
Definition: Types.h:31
UserPropertyView(Aws::Crt::ByteCursor name, Aws::Crt::ByteCursor value)
Definition: MqttRequestResponseClient.h:121
aws_allocator Allocator
Definition: Allocator.h:14
Definition: MqttRequestResponseClient.h:405
SubscriptionStatusEventHandler subscriptionStatusEventHandler
Definition: MqttRequestResponseClient.h:472
Aws::Crt::ByteCursor subscriptionTopicFilter
Definition: MqttRequestResponseClient.h:470
std::function< void(UnmodeledResult &&)> UnmodeledResultHandler
Definition: MqttRequestResponseClient.h:397
RequestResponseClientOptions & WithMaxStreamingSubscriptions(uint32_t maxStreamingSubscriptions)
Definition: MqttRequestResponseClient.h:527
Result(const R &response)
Definition: MqttRequestResponseClient.h:334
UnmodeledResponse & WithPayload(Aws::Crt::ByteCursor payload)
Definition: MqttRequestResponseClient.h:278
Aws::Crt::ByteCursor GetPayload() const
Definition: MqttRequestResponseClient.h:301
IncomingPublishEvent & WithTopic(Aws::Crt::ByteCursor topic)
Definition: MqttRequestResponseClient.h:151
Aws::Crt::ByteCursor GetTopic() const
Definition: MqttRequestResponseClient.h:308
Aws::Crt::ByteCursor m_value
Definition: MqttRequestResponseClient.h:125
const std::function< void(T &&)> & GetStreamHandler() const
Definition: MqttRequestResponseClient.h:447