![]()  | 
  
    AlexaClientSDK
    3.0.0
    
   A cross-platform, modular SDK for interacting with the Alexa Voice Service 
   | 
 
#include <SettingInterface.h>

Public Types | |
| using | ValueType = ValueT | 
| Define the setting value type.  More... | |
| using | ObserverType = SettingObserverInterface< SettingInterface< ValueType > > | 
| Define the observer type for this setting.  More... | |
Public Member Functions | |
| virtual | ~SettingInterface ()=default | 
| virtual SetSettingResult | setLocalChange (const ValueType &value)=0 | 
| virtual bool | setAvsChange (const ValueType &value)=0 | 
| virtual bool | clearData (const ValueType &value)=0 | 
| ValueType | get () const | 
| ValueType | getDefault () const | 
| bool | addObserver (std::shared_ptr< ObserverType > observer) | 
| void | removeObserver (std::shared_ptr< ObserverType > &observer) | 
Protected Types | |
| using | GuardedValue = avsCommon::utils::GuardedValue< ValueType > | 
Alias for GuardedValue with the templated value ValueType.  More... | |
| using | LogEntry = avsCommon::utils::logger::LogEntry | 
| Alias to make log entries less verbose.  More... | |
Protected Member Functions | |
| SettingInterface (const ValueType &value) | |
| void | notifyObservers (SettingNotifications notification) | 
Protected Attributes | |
| std::mutex | m_observerMutex | 
| Mutex used to guard observers.  More... | |
| std::unordered_set< std::shared_ptr< ObserverType > > | m_observers | 
| Set of all observers of this setting.  More... | |
| std::conditional< std::is_scalar< ValueType >::value, std::atomic< ValueType >, GuardedValue >::type | m_value | 
| The setting value. (is_trivially_copyable is not supported on gcc4.8)  More... | |
| const ValueType | m_defaultValue | 
| The default setting value.  More... | |
Interface for setting objects. Second template argument is used to restrict usage to the types accepted.
The setting implementation only support types that have the following properties:
| ValueT | The setting value type. | 
      
  | 
  protected | 
Alias for GuardedValue with the templated value ValueType. 
      
  | 
  protected | 
Alias to make log entries less verbose.
| using alexaClientSDK::settings::SettingInterface< ValueT >::ObserverType = SettingObserverInterface<SettingInterface<ValueType> > | 
Define the observer type for this setting.
| using alexaClientSDK::settings::SettingInterface< ValueT >::ValueType = ValueT | 
Define the setting value type.
      
  | 
  virtualdefault | 
Destructor.
      
  | 
  protected | 
Constructor that initialize m_value with the given value. 
      
  | 
  inline | 
Register a setting observer.
The observer will be executed every time the setting value changes or a request fails.
| observer | The connector to register for calling back whenever the setting notifications. | 
true if the observer was added, false otherwise. 
      
  | 
  pure virtual | 
Clear the data this Setting.
| value | The default value for this setting. | 
true if it data is cleared;  otherwise. Implemented in alexaClientSDK::diagnostics::test::SettingStub< ValueT >, alexaClientSDK::settings::Setting< ValueT >, and alexaClientSDK::settings::test::SettingStub< SettingT >.
      
  | 
  inline | 
Get the current value of this setting. This will not take into consideration pending set requests.
      
  | 
  inline | 
Get the default value of this setting.
      
  | 
  protected | 
Notifies observers of the status of applying a setting and it's current value.
| notification | The type of notification to send to the observers. | 
      
  | 
  inline | 
Remove a setting observer.
| observer | The observer to remove. | 
      
  | 
  pure virtual | 
Request to set the managed setting to the given value. This should be used when the request came from AVS.
| value | The target value. | 
true if it succeeds to enqueue the request;  otherwise. Implemented in alexaClientSDK::diagnostics::test::SettingStub< ValueT >, alexaClientSDK::settings::Setting< ValueT >, and alexaClientSDK::settings::test::SettingStub< SettingT >.
      
  | 
  pure virtual | 
Request to set the managed setting to the given value. Note that this is an asynchronous operation.
| value | The target value. | 
Implemented in alexaClientSDK::settings::Setting< ValueT >, alexaClientSDK::diagnostics::test::SettingStub< ValueT >, and alexaClientSDK::settings::test::SettingStub< SettingT >.
      
  | 
  protected | 
The default setting value.
      
  | 
  protected | 
Mutex used to guard observers.
      
  | 
  protected | 
Set of all observers of this setting.
      
  | 
  protected | 
The setting value. (is_trivially_copyable is not supported on gcc4.8)
AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0