AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Public Member Functions | List of all members
alexaClientSDK::avsCommon::avs::WaitableMessageRequest Class Reference

#include <WaitableMessageRequest.h>

Inheritance diagram for alexaClientSDK::avsCommon::avs::WaitableMessageRequest:
Inheritance graph
[legend]
Collaboration diagram for alexaClientSDK::avsCommon::avs::WaitableMessageRequest:
Collaboration graph
[legend]

Public Member Functions

 WaitableMessageRequest (const std::string &jsonContent)
 
avsCommon::sdkInterfaces::MessageRequestObserverInterface::Status waitForCompletion ()
 
void shutdown ()
 
MessageRequest Functions
void sendCompleted (avsCommon::sdkInterfaces::MessageRequestObserverInterface::Status sendMessageStatus) 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)
 
EventHeaders retrieveEventHeaders () const
 
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

A specialized class to send messages that can be waited on.

Constructor & Destructor Documentation

◆ WaitableMessageRequest()

alexaClientSDK::avsCommon::avs::WaitableMessageRequest::WaitableMessageRequest ( const std::string &  jsonContent)

Constructor.

Parameters
jsonContentThe JSON content of the event.

Member Function Documentation

◆ sendCompleted()

void alexaClientSDK::avsCommon::avs::WaitableMessageRequest::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.

◆ shutdown()

void alexaClientSDK::avsCommon::avs::WaitableMessageRequest::shutdown ( )

Stops the message request processing and returns immediately.

◆ waitForCompletion()

avsCommon::sdkInterfaces::MessageRequestObserverInterface::Status alexaClientSDK::avsCommon::avs::WaitableMessageRequest::waitForCompletion ( )

A blocking call that waits for the message request's response to arrive, up to CONNECTION_TIMEOUT seconds.

Returns
The MessageRequestObserverInterface::Status of the response. If no response is received within the timeout, the status is MessageRequestObserverInterface::Status::TIMEDOUT.

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

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