AlexaClientSDK
1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
|
#include <TemplateRuntime.h>
Static Public Member Functions | |
static std::shared_ptr< TemplateRuntime > | createTemplateRuntime (const std::shared_ptr< avsCommon::sdkInterfaces::RenderPlayerInfoCardsProviderRegistrarInterface > &renderPlayerInfoCardsInterfaces, std::shared_ptr< avsCommon::sdkInterfaces::FocusManagerInterface > focusManager, std::shared_ptr< avsCommon::sdkInterfaces::ExceptionEncounteredSenderInterface > exceptionSender) |
static std::shared_ptr< TemplateRuntime > | create (const std::unordered_set< std::shared_ptr< avsCommon::sdkInterfaces::RenderPlayerInfoCardsProviderInterface >> &renderPlayerInfoCardsInterfaces, std::shared_ptr< avsCommon::sdkInterfaces::FocusManagerInterface > focusManager, std::shared_ptr< avsCommon::sdkInterfaces::ExceptionEncounteredSenderInterface > exceptionSender) |
Static Public Member Functions inherited from alexaClientSDK::avsCommon::sdkInterfaces::DialogUXStateObserverInterface | |
static std::string | stateToString (DialogUXState state) |
Additional Inherited Members | |
Public Types inherited from alexaClientSDK::avsCommon::sdkInterfaces::DialogUXStateObserverInterface | |
enum | DialogUXState { DialogUXState::IDLE, DialogUXState::LISTENING, DialogUXState::EXPECTING, DialogUXState::THINKING, DialogUXState::SPEAKING, DialogUXState::FINISHED } |
The different dialog specific AVS UX states. More... | |
Protected Member Functions inherited from alexaClientSDK::avsCommon::avs::CapabilityAgent | |
CapabilityAgent (const std::string &nameSpace, std::shared_ptr< sdkInterfaces::ExceptionEncounteredSenderInterface > exceptionEncounteredSender) | |
virtual std::shared_ptr< DirectiveInfo > | createDirectiveInfo (std::shared_ptr< AVSDirective > directive, std::unique_ptr< sdkInterfaces::DirectiveHandlerResultInterface > result) |
void | removeDirective (const std::string &messageId) |
void | sendExceptionEncounteredAndReportFailed (std::shared_ptr< DirectiveInfo > info, const std::string &message, avsCommon::avs::ExceptionErrorType type=avsCommon::avs::ExceptionErrorType::INTERNAL_ERROR) |
const std::pair< std::string, std::string > | buildJsonEventString (const std::string &eventName, const std::string &dialogRequestIdString="", const std::string &payload="{}", const std::string &context="") const |
Protected Attributes inherited from alexaClientSDK::avsCommon::avs::CapabilityAgent | |
const std::string | m_namespace |
The namespace of the capability agent. More... | |
std::shared_ptr< sdkInterfaces::ExceptionEncounteredSenderInterface > | m_exceptionEncounteredSender |
Object to use to send exceptionEncountered messages. More... | |
This class implements a CapabilityAgent
that handles the AVS TemplateRuntime
API. The TemplateRuntime
CA is responsible for handling the directives with the TemplateRuntime namespace. Due to the fact that the RenderPlayerInfo
directives are closely related to the AudioPlayer
, the TemplateRuntime
CA is an observer to the AudioPlayer and will be synchronizing the RenderPlayerInfo
directives with the corresponding AudioItem
being handled in the AudioPlayer
.
The TemplateRuntime
CA is also an observer to the DialogUXState
to determine the end of a interaction so that it would know when to clear a RenderTemplate
displayCard.
The clients who are interested in any TemplateRuntime directives can subscribe themselves as an observer, and the clients will be notified via the TemplateRuntimeObserverInterface.
|
virtualdefault |
Destructor.
void alexaClientSDK::capabilityAgents::templateRuntime::TemplateRuntime::addObserver | ( | std::shared_ptr< avsCommon::sdkInterfaces::TemplateRuntimeObserverInterface > | observer | ) |
This function adds an observer to TemplateRuntime
so that it will get notified for renderTemplateCard or renderPlayerInfoCard.
observer | The TemplateRuntimeObserverInterface |
void alexaClientSDK::capabilityAgents::templateRuntime::TemplateRuntime::addRenderPlayerInfoCardsProvider | ( | std::shared_ptr< avsCommon::sdkInterfaces::RenderPlayerInfoCardsProviderInterface > | cardsProvider | ) |
This function adds a @RenderPlayerInfoCardsProviderInterface for a client to subscribe TemplateRuntime
as an observer of changes for RenderPlayerInfoCards.
cardsProvider | The RenderPlayerInfoCardsProviderInterface |
|
overridevirtual |
Cancel an ongoing preHandleDirective()
or handleDirective()
operation for the AVSDirective
in @info. Once this has been called the CapabilityAgent
should not expect to receive further calls regarding this directive.
AVSDirectives
.info | The DirectiveInfo instance for the AVSDirective to process. |
Implements alexaClientSDK::avsCommon::avs::CapabilityAgent.
|
static |
Create an instance of TemplateRuntime
.
renderPlayerInfoCardsInterfaces | A set of objects to use for subscribing TemplateRuntime as an observer of changes for RenderPlayerInfoCards. |
exceptionSender | The object to use for sending AVS Exception messages. |
nullptr
if the inputs are not defined, else a new instance of TemplateRuntime
.
|
static |
Create an instance of TemplateRuntime
.
renderPlayerInfoCardsProviderRegistrar | The registrar containing the set of RenderPlayerInfoCardsProviders . |
exceptionSender | The object to use for sending AVS Exception messages. |
nullptr
if the inputs are not defined, else a new instance of TemplateRuntime
. void alexaClientSDK::capabilityAgents::templateRuntime::TemplateRuntime::displayCardCleared | ( | ) |
This function notifies the TemplateRuntime
that a displayCard has been cleared from the screen. Upon getting this notification, the TemplateRuntime
will release the visual channel.
|
overridevirtual |
Returns the configurations of the capability interfaces being implemented.
Implements alexaClientSDK::avsCommon::sdkInterfaces::CapabilityConfigurationInterface.
|
overridevirtual |
Returns the configuration of the directive handler.
The configuration consists of multiple directive routing rules and their respective blocking policy. The directives will be matched from the most specific rule (with all fields defined) to the least specific rule (which only matches the directive endpointId).
avs::DirectiveHandlerConfiguration
of the handler. Implements alexaClientSDK::avsCommon::sdkInterfaces::DirectiveHandlerInterface.
|
overridevirtual |
Handle the action specified by the AVSDirective
in info
. The handling of subsequent directives with the same DialogRequestId
may be blocked until the DirectiveHandler
calls the setSucceeded()
method of the DirectiveHandlingResult
present in info
. If handling of this directive fails setFailed()
should be called to indicate a failure.
AVSDirectives
.info | The DirectiveInfo instance for the AVSDirective to process. |
Implements alexaClientSDK::avsCommon::avs::CapabilityAgent.
|
override |
|
overridevirtual |
This function is called whenever the AVS UX dialog state of the system changes. This function will block processing of other state changes, so any implementation of this should return quickly.
newState | The new dialog specific AVS UX state. |
Implements alexaClientSDK::avsCommon::sdkInterfaces::DialogUXStateObserverInterface.
|
overridevirtual |
Used to notify the observer of the Channel of focus changes. Once called, the client should make a user observable change only and return immediately. Any additional work that needs to be done should be done on a separate thread or after returning. "User observable change" here refers to events that the end user of the product can visibly see or hear. For example, Alexa speech or music playing would be examples of user observable changes. Other work, such as database storing, logging, or communicating via network should be done on a different thread. Not doing so could result in delays for other clients trying to access the Channel.
newFocus | The new Focus of the channel. |
behavior | The mixingBehavior for the ChannelObserver to take as per the interrupt model |
Reimplemented from alexaClientSDK::avsCommon::avs::CapabilityAgent.
|
overridevirtual |
Used to notify the observer when there is a change in PlayerActivity
or Context
.
state | The PlayerActivity of the Player. |
context | The Context of the Player. |
Implements alexaClientSDK::avsCommon::sdkInterfaces::RenderPlayerInfoCardsObserverInterface.
|
overridevirtual |
Notification that a directive has arrived. This notification gives the DirectiveHandler a chance to prepare for handling of an AVSDirective
. If an error occurs during the pre-Handling phase and that error should cancel the handling of subsequent AVSDirectives
with the same DialogRequestId
, the DirectiveHandler
should call the setFailed
method on the result
instance passed in to this call.
AVSDirectives
.info | The DirectiveInfo instance for the AVSDirective to process. |
Implements alexaClientSDK::avsCommon::avs::CapabilityAgent.
void alexaClientSDK::capabilityAgents::templateRuntime::TemplateRuntime::removeObserver | ( | std::shared_ptr< avsCommon::sdkInterfaces::TemplateRuntimeObserverInterface > | observer | ) |
This function removes an observer from TemplateRuntime
so that it will no longer be notified of renderTemplateCard or renderPlayerInfoCard callbacks.
observer | The TemplateRuntimeObserverInterface |
AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0