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

#include <DeviceControlledSettingProtocol.h>

Inheritance diagram for alexaClientSDK::settings::DeviceControlledSettingProtocol:
Inheritance graph
[legend]
Collaboration diagram for alexaClientSDK::settings::DeviceControlledSettingProtocol:
Collaboration graph
[legend]

Public Member Functions

 ~DeviceControlledSettingProtocol ()=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< DeviceControlledSettingProtocolcreate (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()>
 

Detailed Description

Implement the logic of device controlled setting protocol.

Constructor & Destructor Documentation

◆ ~DeviceControlledSettingProtocol()

alexaClientSDK::settings::DeviceControlledSettingProtocol::~DeviceControlledSettingProtocol ( )
default

Destructor.

Member Function Documentation

◆ avsChange()

bool alexaClientSDK::settings::DeviceControlledSettingProtocol::avsChange ( ApplyChangeFunction  applyChange,
RevertChangeFunction  revertChange,
SettingNotificationFunction  notifyObservers 
)
overridevirtual

Implements the protocol for changing a setting value triggered by an AVS directive.

Parameters
applyChangeFunction that can be used to apply the new value.
revertChangeFunction 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.
notifyObserversFunction used to notify the observers of the protocol result.
Returns
true if the directive was enqueued correctly; false otherwise.

Implements alexaClientSDK::settings::SettingProtocolInterface.

◆ clearData()

bool alexaClientSDK::settings::DeviceControlledSettingProtocol::clearData ( )
overridevirtual

Clear the data for this setting.

Returns
true if it data is cleared; otherwise.

Implements alexaClientSDK::settings::SettingProtocolInterface.

◆ create()

static std::unique_ptr<DeviceControlledSettingProtocol> alexaClientSDK::settings::DeviceControlledSettingProtocol::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 
)
static

Create a device controlled protocol object.

Parameters
metadataThe setting metadata used to generate a unique database key.
eventSenderObject used to send events to avs in order to report changes to the device.
settingStorageThe setting storage object.
connectionManagerAn AVSConnectionManagerInterface instance to listen for connection status updates.
metricRecorderAn MetricRecorderInterface instance to log metrics.
Returns
A pointer to the new SharedAVSSettingProtocol object if it succeeds; nullptr otherwise.

◆ localChange()

SetSettingResult alexaClientSDK::settings::DeviceControlledSettingProtocol::localChange ( ApplyChangeFunction  applyChange,
RevertChangeFunction  revertChange,
SettingNotificationFunction  notifyObservers 
)
overridevirtual

Implements the protocol for changing a setting value through local UI.

Parameters
applyChangeFunction that can be used to apply the new value.
revertChangeFunction 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.
notifyObserversFunction used to notify the observers of the protocol result.
Returns
Returns what was the set result.

Implements alexaClientSDK::settings::SettingProtocolInterface.

◆ restoreValue()

bool alexaClientSDK::settings::DeviceControlledSettingProtocol::restoreValue ( ApplyDbChangeFunction  applyChange,
SettingNotificationFunction  notifyObservers 
)
overridevirtual

Implements the protocol for restoring a value from the storage.

Parameters
applyChangeFunction 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.
notifyObserversFunction used to notify the observers of the protocol result.
Returns
true if the directive was enqueued correctly; false otherwise.

Implements alexaClientSDK::settings::SettingProtocolInterface.


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