PSCF v1.1
Public Member Functions | List of all members
Util::Signal< T > Class Template Reference

Notifier (or subject) in the Observer design pattern. More...

#include <Signal.h>

Public Member Functions

 Signal ()
 Default constructor. More...
 
 ~Signal ()
 Destructor. More...
 
template<class Observer >
void addObserver (Observer &observer, void(Observer::*methodPtr)(const T &))
 Register an observer. More...
 
void clear ()
 Clear all observerse from list. More...
 
int nObserver () const
 Get number of registered observers. More...
 
void notify (const T &t)
 Notify all observers. More...
 

Detailed Description

template<typename T = void>
class Util::Signal< T >

Notifier (or subject) in the Observer design pattern.

A Signal manages a list of registered functor objects, and provides a void Signal<T>::notify(const T&) method that calls them all with the same argument.

The explicit specialization Signal<void>, or Signal<>, has a notify method void Signal<>::notify() that takes no parameters, which calls a method of each observer that takes no parameters.

Definition at line 38 of file Signal.h.

Constructor & Destructor Documentation

◆ Signal()

template<typename T = void>
Util::Signal< T >::Signal ( )
inline

Default constructor.

Definition at line 48 of file Signal.h.

◆ ~Signal()

template<typename T >
Util::Signal< T >::~Signal

Destructor.

Definition at line 16 of file Signal.cpp.

Member Function Documentation

◆ addObserver()

template<typename T >
template<class Observer >
void Util::Signal< T >::addObserver ( Observer observer,
void(Observer::*)(const T &)  methodPtr 
)

Register an observer.

Parameters
observerobserver object (invokes method)
methodPtrpointer to relevant method

Definition at line 111 of file Signal.h.

◆ clear()

template<typename T >
void Util::Signal< T >::clear

Clear all observerse from list.

Definition at line 36 of file Signal.cpp.

◆ nObserver()

template<typename T >
int Util::Signal< T >::nObserver

Get number of registered observers.

Definition at line 51 of file Signal.cpp.

◆ notify()

template<typename T >
void Util::Signal< T >::notify ( const T &  t)

Notify all observers.

This method notifies all registered observers by calling the appropriate method of each observer, passing each the parameter t as argument. The explicit specialization Signal<>, with T=void, is used for notification methods that take

Parameters
tArgument passed to notification methods of all observers.

Definition at line 22 of file Signal.cpp.


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