Public Member Functions | Protected Member Functions | Private Attributes | List of all members
ObservableObject< T > Class Template Reference

#include <observable_object.h>

Public Member Functions

virtual bool addListener (const std::function< void(const T &)> &listener)
 
void clearListeners ()
 
virtual size_t getNumberOfListeners ()
 
virtual T getValue ()
 
 ObservableObject (const T initialValue)
 
virtual void setValue (const T &v)
 
virtual ~ObservableObject ()
 

Protected Member Functions

virtual void broadcastToListeners (const T &currentValue)
 

Private Attributes

std::recursive_mutex listener_mutex_
 
std::list< std::function< void(T)> > listeners_
 
std::atomic< T > value_
 

Detailed Description

template<typename T>
class ObservableObject< T >

Class used as an atomic container of type T. Provides a listener registration and broadcast mechanism for this container's updates.

Template Parameters
T

Definition at line 33 of file observable_object.h.

Constructor & Destructor Documentation

template<typename T>
ObservableObject< T >::ObservableObject ( const T  initialValue)
inline
Parameters
initialValue

Definition at line 40 of file observable_object.h.

template<typename T>
virtual ObservableObject< T >::~ObservableObject ( )
inlinevirtual

Definition at line 46 of file observable_object.h.

Member Function Documentation

template<typename T>
virtual bool ObservableObject< T >::addListener ( const std::function< void(const T &)> &  listener)
inlinevirtual

Add a listener that will be called when the current value changes. Note: any listener that throws an exception will be removed from the broadcast list.

Parameters
listener

Definition at line 79 of file observable_object.h.

template<typename T>
virtual void ObservableObject< T >::broadcastToListeners ( const T &  currentValue)
inlineprotectedvirtual

Broadcast value updates to all registered listeners. Removes faulty listeners (if an exception is thrown).

Parameters
currentValue

Definition at line 118 of file observable_object.h.

template<typename T>
void ObservableObject< T >::clearListeners ( )
inline

Clear all active listeners

Definition at line 97 of file observable_object.h.

template<typename T>
virtual size_t ObservableObject< T >::getNumberOfListeners ( )
inlinevirtual

Get the current number of listeners

Returns

Definition at line 106 of file observable_object.h.

template<typename T>
virtual T ObservableObject< T >::getValue ( )
inlinevirtual

Get the current value

Returns
the current value

Definition at line 53 of file observable_object.h.

template<typename T>
virtual void ObservableObject< T >::setValue ( const T &  v)
inlinevirtual

Set the current value

Parameters
vthe value to set

Definition at line 61 of file observable_object.h.

Member Data Documentation

template<typename T>
std::recursive_mutex ObservableObject< T >::listener_mutex_
private

Definition at line 136 of file observable_object.h.

template<typename T>
std::list<std::function<void(T)> > ObservableObject< T >::listeners_
private

Definition at line 138 of file observable_object.h.

template<typename T>
std::atomic<T> ObservableObject< T >::value_
private

Definition at line 137 of file observable_object.h.


The documentation for this class was generated from the following file:


dataflow_lite
Author(s): AWS RoboMaker
autogenerated on Fri May 7 2021 02:18:22