Game of Ur 0.3.3
This is a computer adaptation of Game of Ur, written in C++ mainly using SDL and OpenGL.
Loading...
Searching...
No Matches
ToyMaker::SignalObserver< TArgs > Class Template Reference

A SignalObserver object, which can subscribe to Signals matching its data signature and receive signal events from them. More...

#include <signals.hpp>

Public Member Functions

 SignalObserver (SignalTracker &owningTracker, const std::string &name, std::function< void(TArgs...)> callback)
 Creates a new SignalObserver object.
 
 SignalObserver (const SignalObserver &other)=delete
 
 SignalObserver (SignalObserver &&other)=delete
 
SignalObserveroperator= (const SignalObserver &other)=delete
 
SignalObserveroperator= (SignalObserver &&other)=delete
 
void resetObserver (SignalTracker &owningTracker, const std::string &name, std::function< void(TArgs...)> callback)
 Reinitializes this observer with a new SignalTracker.
 
void connectTo (Signal< TArgs... > &signal)
 Subscribes this SignalObserver to a Signal whose signature matches its own.
 

Private Attributes

std::shared_ptr< SignalObserver_< TArgs... > > mSignalObserver_
 The underlying implementation of the observer template.
 

Friends

class Signal< TArgs... >
 

Detailed Description

template<typename ... TArgs>
class ToyMaker::SignalObserver< TArgs >

A SignalObserver object, which can subscribe to Signals matching its data signature and receive signal events from them.

It is essentially a wrapper over SignalObserver_<T>.

Usage:

class YourClass: public Toymaker::SignalTracker {
// ...
void onViewUpdatesCompleted(const std::string& viewName);
public:
ToyMaker::SignalObserver<const std::string&> mObserveViewUpdateCompleted {
*this, "ViewUpdateCompletedObserved",
[this](const std::string& viewName) { this->onViewUpdatesCompleted(viewName); }
};
// ...
};
A SignalObserver object, which can subscribe to Signals matching its data signature and receive signa...
Definition signals.hpp:412
Template Parameters
TArgsA list of types of data this observer expects to receive when it receives a signal event.
See also
Signal
SignalTracker

Constructor & Destructor Documentation

◆ SignalObserver()

template<typename ... TArgs>
ToyMaker::SignalObserver< TArgs >::SignalObserver ( SignalTracker & owningTracker,
const std::string & name,
std::function< void(TArgs...)> callback )

Creates a new SignalObserver object.

Parameters
owningTrackerThe tracker which owns and advertises this SignalObserver.
nameThe name of the SignalObserver.
callbackA reference to the function to be called when this observer receives a signal.

Member Function Documentation

◆ connectTo()

template<typename ... TArgs>
void ToyMaker::SignalObserver< TArgs >::connectTo ( Signal< TArgs... > & signal)

Subscribes this SignalObserver to a Signal whose signature matches its own.

Parameters
signalThe Signal this SignalObserver should subscribe to.

◆ resetObserver()

template<typename ... TArgs>
void ToyMaker::SignalObserver< TArgs >::resetObserver ( SignalTracker & owningTracker,
const std::string & name,
std::function< void(TArgs...)> callback )

Reinitializes this observer with a new SignalTracker.

Possibly useful for when a move or copy assignment occurs, since a SignalObserver is neither movable nor copyable.

Parameters
owningTrackerThe new tracker taking charge of this observer.
nameThe (possibly new) name of this observer..
callbackThe (possibly new) reference to a function to be called by the observer when it receives a Signal event.
Todo
Figure out what the intention for this method was.

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