AlexaClientSDK
1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
|
#include <NotifierInterface.h>
Public Member Functions | |
virtual | ~NotifierInterface ()=default |
virtual void | addObserver (const std::shared_ptr< ObserverType > &observer)=0 |
virtual void | removeObserver (const std::shared_ptr< ObserverType > &observer)=0 |
virtual void | addWeakPtrObserver (const std::weak_ptr< ObserverType > &observer)=0 |
virtual void | removeWeakPtrObserver (const std::weak_ptr< ObserverType > &observer)=0 |
virtual void | notifyObservers (std::function< void(const std::shared_ptr< ObserverType > &)> notify)=0 |
virtual bool | notifyObserversInReverse (std::function< void(const std::shared_ptr< ObserverType > &)> notify)=0 |
virtual void | setAddObserverFunction (std::function< void(const std::shared_ptr< ObserverType > &)> postAddFunc)=0 |
Interface for maintains a set of observers that are notified with a caller defined function.
ObserverType | The type of observer notified by the template instantiation. |
|
virtualdefault |
Destructor.
|
pure virtual |
Add an observer. Duplicate additions are ignored.
observer | The observer to add. |
Notifier
will no longer maintain the life cycle of its observers
. Please start using the new addWeakPtrObserver()
API instead. Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
|
pure virtual |
Add an observer with weak_ptr. Duplicate additions are ignored.
observer | The observer to add. |
Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
|
pure virtual |
Notify the observers in the order that they were added.
notify | The function to invoke to notify an observer. |
Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
|
pure virtual |
Notify the observers in the reverse order that they were added.
notify | The function to invoke to notify an observer. |
Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
|
pure virtual |
Remove an observer. Invalid requests (nullptr or non member observers) are ignored.
observer | The observer to remove. |
Notifier
will no longer maintain the life cycle of its observers
. Please start using the new removeWeakPtrObserver()
API instead. Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
|
pure virtual |
Remove an observer with weak_ptr. Invalid requests (nullptr or non member observers) are ignored.
observer | The observer to remove. |
Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
|
pure virtual |
Set the function to be called after an observer is added (for example, to notify the newly-added observer of the current state).
If there's any observers that were added before setAddObserverFunction
is called, those added observers will be notified as well.
@warn Use caution when setting this function. The function MUST be reentrant, or else you run the risk of deadlock. When an observer adds itself to a NotifierInterface
, this function will be called in the same context.
postAddFunc | The function to call after an observer is added. |
Implemented in alexaClientSDK::acsdkNotifier::Notifier< registrationManager::RegistrationObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< ObserverType >, alexaClientSDK::acsdkNotifier::Notifier< clientInterfaces::ArtifactChangeObserver >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::utils::RequiresShutdown >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::KeyWordDetectorStateObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< avsCommon::sdkInterfaces::AlexaEventProcessedObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< alexaClientSDK::acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, alexaClientSDK::acsdkNotifier::Notifier< acsdkSystemClockMonitorInterfaces::SystemClockMonitorObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkStartupManagerInterfaces::RequiresStartupInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkNotificationsInterfaces::NotificationsObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkInteractionModelInterfaces::InteractionModelRequestProcessingObserverInterface >, alexaClientSDK::acsdkNotifier::Notifier< acsdkCommunicationInterfaces::CommunicationPropertyChangeSubscriber< T > >, and alexaClientSDK::acsdkNotifier::Notifier< acsdkBluetoothInterfaces::BluetoothDeviceObserverInterface >.
AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0