AlexaClientSDK  1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Public Member Functions | List of all members
alexaClientSDK::acsdkDeviceSetup::DeviceSetupMessageRequest Class Reference

#include <DeviceSetupMessageRequest.h>

Inheritance diagram for alexaClientSDK::acsdkDeviceSetup::DeviceSetupMessageRequest:
Inheritance graph
[legend]
Collaboration diagram for alexaClientSDK::acsdkDeviceSetup::DeviceSetupMessageRequest:
Collaboration graph
[legend]

Public Member Functions

 DeviceSetupMessageRequest (const std::string &jsonContent, std::promise< bool > messageCompletePromise)
 
MessageRequest functions.
Note
We do not override exceptionEncountered because sendCompleted is still expected on server exceptions.
void sendCompleted (avsCommon::sdkInterfaces::MessageRequestObserverInterface::Status status) override
 
- Public Member Functions inherited from alexaClientSDK::avsCommon::avs::MessageRequest
 MessageRequest (const std::string &jsonContent, const std::string &uriPathExtension="", const unsigned int threshold=0, const std::string &streamMetricName="")
 
 MessageRequest (const std::string &jsonContent, const unsigned int threshold, const std::string &streamMetricName)
 
 MessageRequest (const std::string &jsonContent, bool isSerialized, const std::string &uriPathExtension="", std::vector< std::pair< std::string, std::string >> headers={}, MessageRequestResolveFunction resolver=nullptr, const unsigned int threshold=0, const std::string &streamMetricName="")
 
 MessageRequest (const MessageRequest &messageRequest)
 
virtual ~MessageRequest ()
 
void addAttachmentReader (const std::string &name, std::shared_ptr< attachment::AttachmentReader > attachmentReader)
 
std::string getJsonContent () const
 
bool getIsSerialized () const
 
std::string getUriPathExtension () const
 
int attachmentReadersCount () const
 
std::shared_ptr< NamedReadergetAttachmentReader (size_t index) const
 
virtual void responseStatusReceived (avsCommon::sdkInterfaces::MessageRequestObserverInterface::Status status)
 
virtual void exceptionReceived (const std::string &exceptionMessage)
 
void addObserver (std::shared_ptr< avsCommon::sdkInterfaces::MessageRequestObserverInterface > observer)
 
void removeObserver (std::shared_ptr< avsCommon::sdkInterfaces::MessageRequestObserverInterface > observer)
 
const std::vector< std::pair< std::string, std::string > > & getHeaders () const
 
bool isResolved () const
 
std::shared_ptr< MessageRequestresolveRequest (const std::string &resolveKey) const
 
unsigned int getStreamBytesThreshold () const
 
std::string getStreamMetricName () const
 

Additional Inherited Members

- Public Types inherited from alexaClientSDK::avsCommon::avs::MessageRequest
using MessageRequestResolveFunction = std::function< bool(const std::shared_ptr< EditableMessageRequest > &req, const std::string &resolveKey)>
 
- Protected Attributes inherited from alexaClientSDK::avsCommon::avs::MessageRequest
std::mutex m_observerMutex
 Mutex to guard access of m_observers. More...
 
std::unordered_set< std::shared_ptr< avsCommon::sdkInterfaces::MessageRequestObserverInterface > > m_observers
 Set of observers of MessageRequestObserverInterface. More...
 
std::string m_jsonContent
 The JSON content to be sent to AVS. More...
 
bool m_isSerialized
 True if sending this message must be serialized with sending other serialized messages. More...
 
std::string m_uriPathExtension
 The path extension to be appended to the base URL when sending. More...
 
std::vector< std::shared_ptr< NamedReader > > m_readers
 The AttachmentReaders of the Attachments data to be sent to AVS. More...
 
std::vector< std::pair< std::string, std::string > > m_headers
 Optional headers to send with this request to AVS. More...
 
MessageRequestResolveFunction m_resolver
 Resolver function to resolve current message request to a valid state. Null if message is already resolved. More...
 
std::string m_streamMetricName
 The name for the stream byte metric. More...
 
unsigned int m_streamBytesThreshold
 The threshold for the number of bytes for when we should record the stream metric. More...
 

Detailed Description

This class extends MessageRequest to fulfill a promise upon sending completion. Currently MessageRequestObserverInterface callbacks do not return an identifier. This makes it difficult to associate callbacks when multiple requests are sent. The future allows multiple messages to be sent, and their returns to be differentiated.

Constructor & Destructor Documentation

◆ DeviceSetupMessageRequest()

alexaClientSDK::acsdkDeviceSetup::DeviceSetupMessageRequest::DeviceSetupMessageRequest ( const std::string &  jsonContent,
std::promise< bool >  messageCompletePromise 
)

@copyDoc avsCommon::avs::MessageRequest()

Construct a MessageRequest that will fulfill the promise upon completion.

Parameters
jsonContentThe JSON content to be sent to AVS.
messageCompletePromiseThe promise to set with the results.

Member Function Documentation

◆ sendCompleted()

void alexaClientSDK::acsdkDeviceSetup::DeviceSetupMessageRequest::sendCompleted ( avsCommon::sdkInterfaces::MessageRequestObserverInterface::Status  status)
overridevirtual

This is called once the send request has completed. The status parameter indicates success or failure.

Parameters
statusWhether the send request succeeded or failed.

Reimplemented from alexaClientSDK::avsCommon::avs::MessageRequest.


The documentation for this class was generated from the following files:

AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0