Ring Daemon 16.0.0
Loading...
Searching...
No Matches
jami::PublishMapSubject< T1, T2 > Class Template Reference

#include <observer.h>

Inheritance diagram for jami::PublishMapSubject< T1, T2 >:
Inheritance graph
Collaboration diagram for jami::PublishMapSubject< T1, T2 >:
Collaboration graph

Public Types

using F = std::function< T2(const T1 &)>
 

Public Member Functions

virtual void attached (Observable< T1 > *srcObs) override
 attached Here we just make sure that the PublishMapSubject is only attached to one Observable at a time.
 
virtual void detached (Observable< T1 > *) override
 detached Since a MapSubject is only attached to one Observable, when detached We should detach all of it observers
 
 PublishMapSubject (F f)
 
void update (Observable< T1 > *, const T1 &t) override
 
 ~PublishMapSubject ()
 ~PublishMapSubject() Detach all observers to avoid making them call this observable when destroyed
 
- Public Member Functions inherited from jami::Observer< T1 >
virtual ~Observer ()
 
- Public Member Functions inherited from jami::Observable< T2 >
bool attach (Observer< T2 > *o)
 
void attachPriorityObserver (std::shared_ptr< Observer< T2 > > o)
 
bool detach (Observer< T2 > *o)
 
void detachPriorityObserver (Observer< T2 > *o)
 
size_t getObserversCount ()
 
 Observable ()
 
virtual ~Observable ()
 ~Observable Detach all observers to avoid making them call this observable when destroyed
 

Additional Inherited Members

- Protected Member Functions inherited from jami::Observable< T2 >
void notify (T2 data)
 
- Protected Attributes inherited from jami::Observable< T2 >
std::mutex mutex_
 
std::set< Observer< T2 > * > observers_
 
std::list< std::weak_ptr< Observer< T2 > > > priority_observers_
 

Detailed Description

template<typename T1, typename T2>
class jami::PublishMapSubject< T1, T2 >

Definition at line 187 of file observer.h.

Member Typedef Documentation

◆ F

template<typename T1 , typename T2 >
using jami::PublishMapSubject< T1, T2 >::F = std::function<T2(const T1&)>

Definition at line 190 of file observer.h.

Constructor & Destructor Documentation

◆ PublishMapSubject()

template<typename T1 , typename T2 >
jami::PublishMapSubject< T1, T2 >::PublishMapSubject ( F  f)
inline

Definition at line 192 of file observer.h.

◆ ~PublishMapSubject()

~PublishMapSubject() Detach all observers to avoid making them call this observable when destroyed

Definition at line 234 of file observer.h.

References jami::PublishMapSubject< T1, T2 >::detached().

Here is the call graph for this function:

Member Function Documentation

◆ attached()

template<typename T1 , typename T2 >
virtual void jami::PublishMapSubject< T1, T2 >::attached ( Observable< T1 > *  srcObs)
inlineoverridevirtual

attached Here we just make sure that the PublishMapSubject is only attached to one Observable at a time.

Parameters
srcObs

Reimplemented from jami::Observer< T1 >.

Definition at line 204 of file observer.h.

References jami::Observable< T >::detach(), and jami::emitSignal().

Here is the call graph for this function:

◆ detached()

template<typename T1 , typename T2 >
virtual void jami::PublishMapSubject< T1, T2 >::detached ( Observable< T1 > *  )
inlineoverridevirtual

detached Since a MapSubject is only attached to one Observable, when detached We should detach all of it observers

Reimplemented from jami::Observer< T1 >.

Definition at line 217 of file observer.h.

References jami::emitSignal(), jami::Observable< T2 >::mutex_, jami::Observable< T2 >::observers_, and jami::Observable< T2 >::priority_observers_.

Referenced by jami::PublishMapSubject< T1, T2 >::~PublishMapSubject().

Here is the call graph for this function:

◆ update()

template<typename T1 , typename T2 >
void jami::PublishMapSubject< T1, T2 >::update ( Observable< T1 > *  ,
const T1 t 
)
inlineoverridevirtual

Implements jami::Observer< T1 >.

Definition at line 196 of file observer.h.

References jami::Observable< T2 >::notify().

Here is the call graph for this function:

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