#include <xrb_signalhandler.hpp>
Public Member Functions | |
SignalHandler () | |
Boring default constructor. | |
virtual | ~SignalHandler () |
Slightly boring destructor. | |
bool | IsBlockingSenders () const |
All-SignalSender* signal-blocking state accessor. | |
bool | IsBlockingReceivers () const |
All-SignalReceiver* callback-blocking state accessor. | |
void | SetIsBlockingSenders (bool const is_blocking_senders) |
All-SignalSender* signal-blocking state modifier. | |
void | SetIsBlockingReceivers (bool const is_blocking_receivers) |
All-SignalReceiver* callback-blocking state modifier. | |
void | DetachAll () |
Causes all added SignalSender*s and SignalReceiver*s to detach all their attachments, via SignalPort::DetachAll(). | |
Static Public Member Functions | |
static void | Connect0 (SignalSender0 const *sender, SignalReceiver0 const *receiver) |
The official way to connect a SignalSender0 to a SignalReceiver0. | |
template<typename T > | |
static void | Connect1 (SignalSender1< T > const *sender, SignalReceiver1< T > const *receiver) |
The official way to connect a SignalSender1<T> to a SignalReceiver1<T>. | |
template<typename T > | |
static void | Connect1 (SignalSender1< T > const *sender, T(*transformation_function)(T), SignalReceiver1< T > const *receiver) |
The official way to connect a SignalSender1<T> to a SignalReceiver1<T>, providing a transformation function for the signal value. | |
template<typename T , typename U > | |
static void | Connect2 (SignalSender2< T, U > const *sender, SignalReceiver2< T, U > const *receiver) |
The official way to connect a SignalSender2<T, U> to a SignalReceiver2<T, U>. | |
template<typename T , typename U > | |
static void | Connect2 (SignalSender2< T, U > const *sender, T(*transformation_function_1)(T), U(*transformation_function_2)(U), SignalReceiver2< T, U > const *receiver) |
The official way to connect a SignalSender2<T, U> to a SignalReceiver2<T, U>. | |
Friends | |
class | SignalSenderBase |
So that SignalSenderBase can call AddSender() . | |
class | SignalReceiverBase |
So that SignalReceiverBase can call AddReceiver() . |
Provides the necessary framework to SignalSender* and SignalReceiver*. A class must derive from SignalHandler to use any SignalSender*s or SignalReceiver*s. The SignalSender*s and SignalReceiver*s must be non-dynamically-allocated member variables that are constructed in the constructor of the SignalHandler subclass. This requirement is so that the life of the SignalSender*s and SignalReceiver*s is ensured to be exactly that of the SignalHandler subclass. When the member SignalSender*s and SignalReceiver*s are destructed during the destruction of their owner SignalHandler subclass, they will automatically detach all of their connections, conveniently cleaning themselves up in an intuitive manner.
A SignalHandler can block all of its SignalSender*s' signals, as well as all of its SignalReceiver*s' callbacks. Contrast this with the individual signal blocking done in SignalPort
.
Definition at line 731 of file xrb_signalhandler.hpp.
Xrb::SignalHandler::~SignalHandler | ( | ) | [virtual] |
Slightly boring destructor.
All the added SignalSender*s and SignalReceiver*s will have detached all their attachments by the time this happens (that is, if the SignalHandler subclass correctly instantiated and constructed its SignalSender*s and SignalReceiver*s).
Definition at line 93 of file xrb_signalhandler.cpp.
bool Xrb::SignalHandler::IsBlockingSenders | ( | ) | const [inline] |
All-SignalSender* signal-blocking state accessor.
Definition at line 750 of file xrb_signalhandler.hpp.
Referenced by Xrb::Widget::SetIsEnabled().
bool Xrb::SignalHandler::IsBlockingReceivers | ( | ) | const [inline] |
All-SignalReceiver* callback-blocking state accessor.
Definition at line 759 of file xrb_signalhandler.hpp.
void Xrb::SignalHandler::SetIsBlockingSenders | ( | bool const | is_blocking_senders | ) | [inline] |
All-SignalSender* signal-blocking state modifier.
is_blocking_senders | The SignalSender* signal-blocking state to assign. |
Definition at line 768 of file xrb_signalhandler.hpp.
Referenced by Xrb::Widget::SetIsEnabled().
void Xrb::SignalHandler::SetIsBlockingReceivers | ( | bool const | is_blocking_receivers | ) | [inline] |
All-SignalReceiver* callback-blocking state modifier.
is_blocking_receivers | The SignalReceiver* callback-blocking state to assign. |
Definition at line 776 of file xrb_signalhandler.hpp.
static void Xrb::SignalHandler::Connect0 | ( | SignalSender0 const * | sender, | |
SignalReceiver0 const * | receiver | |||
) | [inline, static] |
The official way to connect a SignalSender0 to a SignalReceiver0.
sender | This object will be connected to receiver . | |
receiver | This object will be connected to sender . |
Definition at line 791 of file xrb_signalhandler.hpp.
Referenced by Xrb::Dialog::Dialog().
static void Xrb::SignalHandler::Connect1 | ( | SignalSender1< T > const * | sender, | |
SignalReceiver1< T > const * | receiver | |||
) | [inline, static] |
The official way to connect a SignalSender1<T> to a SignalReceiver1<T>.
sender | This object will be connected to receiver . | |
receiver | This object will be connected to sender . |
Definition at line 806 of file xrb_signalhandler.hpp.
static void Xrb::SignalHandler::Connect1 | ( | SignalSender1< T > const * | sender, | |
T(*)(T) | transformation_function, | |||
SignalReceiver1< T > const * | receiver | |||
) | [inline, static] |
The official way to connect a SignalSender1<T> to a SignalReceiver1<T>, providing a transformation function for the signal value.
sender | This object will be connected to receiver . | |
transformation_function | The function pointer for the transformation to apply to each value signaled by this connection. | |
receiver | This object will be connected to sender . |
Definition at line 824 of file xrb_signalhandler.hpp.
static void Xrb::SignalHandler::Connect2 | ( | SignalSender2< T, U > const * | sender, | |
SignalReceiver2< T, U > const * | receiver | |||
) | [inline, static] |
The official way to connect a SignalSender2<T, U> to a SignalReceiver2<T, U>.
sender | This object will be connected to receiver . | |
receiver | This object will be connected to sender . |
Definition at line 840 of file xrb_signalhandler.hpp.
static void Xrb::SignalHandler::Connect2 | ( | SignalSender2< T, U > const * | sender, | |
T(*)(T) | transformation_function_1, | |||
U(*)(U) | transformation_function_2, | |||
SignalReceiver2< T, U > const * | receiver | |||
) | [inline, static] |
The official way to connect a SignalSender2<T, U> to a SignalReceiver2<T, U>.
sender | This object will be connected to receiver . | |
transformation_function_1 | The function pointer for the transformation to apply to each of the first parameter values signaled by this connection. | |
transformation_function_2 | The function pointer for the transformation to apply to each of the second parameter values signaled by this connection. | |
receiver | This object will be connected to sender . |
Definition at line 864 of file xrb_signalhandler.hpp.