AlexaClientSDK
3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
|
#include <CloudControlledSettingProtocol.h>
Public Member Functions | |
~CloudControlledSettingProtocol ()=default | |
SettingProtocolInterface methods. | |
SetSettingResult | localChange (ApplyChangeFunction applyChange, RevertChangeFunction revertChange, SettingNotificationFunction notifyObservers) override |
bool | avsChange (ApplyChangeFunction applyChange, RevertChangeFunction revertChange, SettingNotificationFunction notifyObservers) override |
bool | restoreValue (ApplyDbChangeFunction applyChange, SettingNotificationFunction notifyObservers) override |
bool | clearData () override |
Public Member Functions inherited from alexaClientSDK::settings::SettingProtocolInterface | |
virtual | ~SettingProtocolInterface ()=default |
Static Public Member Functions | |
static std::unique_ptr< CloudControlledSettingProtocol > | create (const SettingEventMetadata &metadata, std::shared_ptr< SettingEventSenderInterface > eventSender, std::shared_ptr< storage::DeviceSettingStorageInterface > settingStorage, std::shared_ptr< avsCommon::sdkInterfaces::AVSConnectionManagerInterface > connectionManager, const std::shared_ptr< avsCommon::utils::metrics::MetricRecorderInterface > &metricRecorder) |
Additional Inherited Members | |
Public Types inherited from alexaClientSDK::settings::SettingProtocolInterface | |
using | ApplyChangeFunction = std::function< std::pair< bool, std::string >()> |
using | ApplyDbChangeFunction = std::function< std::pair< bool, std::string >(const std::string &dbValue)> |
using | SettingNotificationFunction = std::function< void(SettingNotifications notification)> |
using | RevertChangeFunction = std::function< std::string()> |
Implement the protocol for cloud controlled settings.
|
default |
Destructor.
|
overridevirtual |
Implements the protocol for changing a setting value triggered by an AVS directive.
applyChange | Function that can be used to apply the new value. |
revertChange | Function that can be used to revert the change. This function should only be called if the apply change succeeded but some other part of the protocol has failed. |
notifyObservers | Function used to notify the observers of the protocol result. |
true
if the directive was enqueued correctly; false
otherwise. Implements alexaClientSDK::settings::SettingProtocolInterface.
|
overridevirtual |
Clear the data for this setting.
true
if it data is cleared; otherwise. Implements alexaClientSDK::settings::SettingProtocolInterface.
|
static |
Create a cloud controlled protocol object.
metadata | Specifies the parameters used to construct setting changed and report event. |
eventSender | Object used to send events to AVS in order to report changes from the device. |
settingStorage | The setting storage object. |
connectionManager | An AVSConnectionManagerInterface instance to listen for connection status updates. |
metricRecorder | An MetricRecorderInterface instance to log metrics. |
CloudControlledSettingProtocol
object if it succeeds; nullptr
otherwise.
|
overridevirtual |
Implements the protocol for changing a setting value through local UI.
applyChange | Function that can be used to apply the new value. |
revertChange | Function that can be used to revert the change. This function should only be called if the apply change succeeded but some other part of the protocol has failed. |
notifyObservers | Function used to notify the observers of the protocol result. |
Implements alexaClientSDK::settings::SettingProtocolInterface.
|
overridevirtual |
Implements the protocol for restoring a value from the storage.
applyChange | Function that can be used to apply the value restored from the storage. This function will be called with empty string if no value was found in the database. |
notifyObservers | Function used to notify the observers of the protocol result. |
true
if the directive was enqueued correctly; false
otherwise. Implements alexaClientSDK::settings::SettingProtocolInterface.
AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0