#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 ¤tValue) |
Private Attributes | |
std::recursive_mutex | listener_mutex_ |
std::list< std::function< void(T)> > | listeners_ |
std::atomic< T > | value_ |
Class used as an atomic container of type T. Provides a listener registration and broadcast mechanism for this container's updates.
T |
Definition at line 33 of file observable_object.h.
|
inline |
initialValue |
Definition at line 40 of file observable_object.h.
|
inlinevirtual |
Definition at line 46 of file observable_object.h.
|
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.
listener |
Definition at line 79 of file observable_object.h.
|
inlineprotectedvirtual |
Broadcast value updates to all registered listeners. Removes faulty listeners (if an exception is thrown).
currentValue |
Definition at line 118 of file observable_object.h.
|
inline |
Clear all active listeners
Definition at line 97 of file observable_object.h.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Set the current value
v | the value to set |
Definition at line 61 of file observable_object.h.
|
private |
Definition at line 136 of file observable_object.h.
|
private |
Definition at line 138 of file observable_object.h.
|
private |
Definition at line 137 of file observable_object.h.