Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::state::ObservableValue< T > Class Template Reference

Observable value — wraps a single value with change notification. More...

#include <state_tree.hpp>

Public Types

using ChangeListener = std::function<void(const T& old_val, const T& new_val)>

Public Member Functions

 ObservableValue ()=default
 ObservableValue (T initial)
const T & get () const
 operator const T & () const
void set (T new_value)
ObservableValue & operator= (T new_value)
int add_listener (ChangeListener fn)
void remove_listener (int id)

Detailed Description

template<typename T>
class pulp::state::ObservableValue< T >

Observable value — wraps a single value with change notification.

Thread-safety contract: NOT thread-safe. Every method (get, set, add_listener, remove_listener) touches non-atomic members without internal locking. Caller must serialize. Same model as StateTree.

Member Typedef Documentation

◆ ChangeListener

template<typename T>
using pulp::state::ObservableValue< T >::ChangeListener = std::function<void(const T& old_val, const T& new_val)>

Constructor & Destructor Documentation

◆ ObservableValue() [1/2]

template<typename T>
pulp::state::ObservableValue< T >::ObservableValue ( )
default

◆ ObservableValue() [2/2]

template<typename T>
pulp::state::ObservableValue< T >::ObservableValue ( T initial)
inlineexplicit

Member Function Documentation

◆ add_listener()

template<typename T>
int pulp::state::ObservableValue< T >::add_listener ( ChangeListener fn)
inline

◆ get()

template<typename T>
const T & pulp::state::ObservableValue< T >::get ( ) const
inline

◆ operator const T &()

template<typename T>
pulp::state::ObservableValue< T >::operator const T & ( ) const
inline

◆ operator=()

template<typename T>
ObservableValue & pulp::state::ObservableValue< T >::operator= ( T new_value)
inline

◆ remove_listener()

template<typename T>
void pulp::state::ObservableValue< T >::remove_listener ( int id)
inline

◆ set()

template<typename T>
void pulp::state::ObservableValue< T >::set ( T new_value)
inline

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/state/include/pulp/state/state_tree.hpp