Libftpp
A modern C++ library
ObservableValue< TType > Class Template Reference

ObservableValue class template that implements the Observer design pattern. It allows observers to subscribe and be notified when the value changes. More...

#include <observable_value.hpp>

Public Member Functions

 ObservableValue ()=default
 
 ~ObservableValue ()
 
 ObservableValue (TType value)
 
ObservableValueoperator= (const TType &newValue)
 
void subscribe (IObserver< TType > *observer)
 
void unsubscribe (IObserver< TType > *observer)
 
void set (TType newValue)
 
int countSubscriber () const
 
const TType & get () const
 

Detailed Description

template<typename TType>
class ObservableValue< TType >

ObservableValue class template that implements the Observer design pattern. It allows observers to subscribe and be notified when the value changes.

Template Parameters
TTypeThe type of the value being observed.
Note
If ObservableValue is destroyed, every observer is unsubscribed automatically.
MyObserver observer;
value.subscribe(&observer);
value = 42; // This will notify the observer with the new value 42
ObservableValue class template that implements the Observer design pattern. It allows observers to su...
Warning
need to implement IObserver<TType> interface for observers.
class MyObserver : public IObserver<int>
{
public:
void update(const int& newValue) override
{
// Handle the updated value
}
};

Definition at line 38 of file observable_value.hpp.

Constructor & Destructor Documentation

◆ ObservableValue() [1/2]

template<typename TType >
ObservableValue< TType >::ObservableValue ( )
default

◆ ~ObservableValue()

template<typename TType >
ObservableValue< TType >::~ObservableValue ( )
inline

Definition at line 55 of file observable_value.hpp.

References ObservableValue< TType >::unsubscribe().

◆ ObservableValue() [2/2]

template<typename TType >
ObservableValue< TType >::ObservableValue ( TType  value)
inline

Definition at line 61 of file observable_value.hpp.

Member Function Documentation

◆ countSubscriber()

template<typename TType >
int ObservableValue< TType >::countSubscriber ( ) const
inline

Definition at line 95 of file observable_value.hpp.

◆ get()

template<typename TType >
const TType& ObservableValue< TType >::get ( ) const
inline

Definition at line 100 of file observable_value.hpp.

◆ operator=()

template<typename TType >
ObservableValue& ObservableValue< TType >::operator= ( const TType &  newValue)
inline

Definition at line 66 of file observable_value.hpp.

References ObservableValue< TType >::set().

◆ set()

template<typename TType >
void ObservableValue< TType >::set ( TType  newValue)
inline

Definition at line 86 of file observable_value.hpp.

Referenced by ObservableValue< TType >::operator=().

◆ subscribe()

template<typename TType >
void ObservableValue< TType >::subscribe ( IObserver< TType > *  observer)
inline

Definition at line 74 of file observable_value.hpp.

◆ unsubscribe()

template<typename TType >
void ObservableValue< TType >::unsubscribe ( IObserver< TType > *  observer)
inline

Definition at line 80 of file observable_value.hpp.

Referenced by ObservableValue< TType >::~ObservableValue().