properties-cpp 0.0.1
A very simple convenience library for handling properties and signals in C++11.
core::Signal< Arguments > Class Template Reference

A signal class that observers can subscribe to. More...

#include <signal.h>

+ Collaboration diagram for core::Signal< Arguments >:

Public Types

typedef std::function< void(Arguments...)> Slot
 Slot is the function type that observers have to provide to connect to this signal.
 

Public Member Functions

 Signal () noexcept(true)
 Signal constructs a new instance. Never throws.
 
 ~Signal ()
 
 Signal (const Signal &)=delete
 
Signaloperator= (const Signal &)=delete
 
bool operator== (const Signal &) const =delete
 
Connection connect (const Slot &slot) const
 Connects the provided slot to this signal instance.
 
void operator() (Arguments... args)
 operator () emits the signal with the provided parameters.
 

Detailed Description

template<typename ... Arguments>
class core::Signal< Arguments >

A signal class that observers can subscribe to.

Template Parameters
ArgumentsList of argument types passed on to observers when the signal is emitted.

Definition at line 36 of file signal.h.

Member Typedef Documentation

◆ Slot

template<typename ... Arguments>
typedef std::function<void(Arguments...)> core::Signal< Arguments >::Slot

Slot is the function type that observers have to provide to connect to this signal.

Definition at line 42 of file signal.h.

Constructor & Destructor Documentation

◆ Signal() [1/2]

template<typename ... Arguments>
core::Signal< Arguments >::Signal ( )
inlinenoexcept

Signal constructs a new instance. Never throws.

Definition at line 61 of file signal.h.

◆ ~Signal()

template<typename ... Arguments>
core::Signal< Arguments >::~Signal ( )
inline

Definition at line 65 of file signal.h.

◆ Signal() [2/2]

template<typename ... Arguments>
core::Signal< Arguments >::Signal ( const Signal< Arguments > &  )
delete

Member Function Documentation

◆ connect()

template<typename ... Arguments>
Connection core::Signal< Arguments >::connect ( const Slot slot) const
inline

Connects the provided slot to this signal instance.

Calling this method is thread-safe and synchronized with any other connect, signal emission or disconnect calls.

Parameters
slotThe function to be called when the signal is emitted.
Returns
A connection object corresponding to the signal-slot connection.

Definition at line 86 of file signal.h.

Referenced by TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().

◆ operator()()

template<typename ... Arguments>
void core::Signal< Arguments >::operator() ( Arguments...  args)
inline

operator () emits the signal with the provided parameters.

Please note that signal emissions might not be delivered immediately to registered slots, depending on whether the respective connection is dispatched via a queueing dispatcher. For that reason, the lifetime of the arguments has to exceed the scope of the call to this operator and its surrounding scope.

Parameters
argsThe arguments to be passed on to registered slots.

Definition at line 132 of file signal.h.

◆ operator=()

template<typename ... Arguments>
Signal & core::Signal< Arguments >::operator= ( const Signal< Arguments > &  )
delete

◆ operator==()

template<typename ... Arguments>
bool core::Signal< Arguments >::operator== ( const Signal< Arguments > &  ) const
delete

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