AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
NotifierInterface.h
Go to the documentation of this file.
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0/
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #ifndef ACSDK_NOTIFIERINTERFACES_NOTIFIERINTERFACE_H_
17 #define ACSDK_NOTIFIERINTERFACES_NOTIFIERINTERFACE_H_
18 
19 #include <functional>
20 #include <memory>
21 
22 namespace alexaClientSDK {
23 namespace notifierInterfaces {
24 
32 template <typename ObserverType>
34 public:
38  virtual ~NotifierInterface() = default;
39 
53  virtual void addObserver(const std::shared_ptr<ObserverType>& observer) = 0;
54 
66  virtual void removeObserver(const std::shared_ptr<ObserverType>& observer) = 0;
67 
81  virtual void addWeakPtrObserver(const std::weak_ptr<ObserverType>& observer) = 0;
82 
91  virtual void removeWeakPtrObserver(const std::weak_ptr<ObserverType>& observer) = 0;
92 
98  virtual void notifyObservers(std::function<void(const std::shared_ptr<ObserverType>&)> notify) = 0;
99 
107  virtual bool notifyObserversInReverse(std::function<void(const std::shared_ptr<ObserverType>&)> notify) = 0;
108 
124  virtual void setAddObserverFunction(std::function<void(const std::shared_ptr<ObserverType>&)> postAddFunc) = 0;
125 };
126 
127 } // namespace notifierInterfaces
128 } // namespace alexaClientSDK
129 
130 #endif // ACSDK_NOTIFIERINTERFACES_NOTIFIERINTERFACE_H_
virtual void setAddObserverFunction(std::function< void(const std::shared_ptr< ObserverType > &)> postAddFunc)=0
Set a function for notifications on an observer additions.
virtual void notifyObservers(std::function< void(const std::shared_ptr< ObserverType > &)> notify)=0
Notify the observers in the order that they were added.
virtual bool notifyObserversInReverse(std::function< void(const std::shared_ptr< ObserverType > &)> notify)=0
Notify the observers in the reverse order that they were added.
virtual void removeObserver(const std::shared_ptr< ObserverType > &observer)=0
Remove an observer.
virtual void addObserver(const std::shared_ptr< ObserverType > &observer)=0
Add an observer.
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
virtual void addWeakPtrObserver(const std::weak_ptr< ObserverType > &observer)=0
Add a weak reference to an observer.
Generic observer operations interface.
Definition: NotifierInterface.h:33
virtual void removeWeakPtrObserver(const std::weak_ptr< ObserverType > &observer)=0
Remove an observer.

AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0