Xrb::SignalHandler Class Reference

The base class for anything that contains a SignalSender* or SignalReceiver*. More...

#include <xrb_signalhandler.hpp>

Inheritance diagram for Xrb::SignalHandler:

Inheritance graph
[legend]

List of all members.

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().


Detailed Description

The base class for anything that contains a SignalSender* or SignalReceiver*.

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.


Constructor & Destructor Documentation

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.


Member Function Documentation

bool Xrb::SignalHandler::IsBlockingSenders (  )  const [inline]

All-SignalSender* signal-blocking state accessor.

Returns:
True iff the subordinate SignalSender*s are being blocked by this SignalHandler (has no connection to the individual SignalSender*'s blocking state).

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.

Returns:
True iff the subordinate SignalReceiver*s are being blocked by this SignalHandler (has no connection to the individual SignalReceiver*'s blocking state).

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.

Parameters:
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.

Parameters:
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.

Parameters:
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().

template<typename T >
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>.

Parameters:
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.

template<typename T >
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.

Parameters:
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.

template<typename T , typename U >
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>.

Parameters:
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.

template<typename T , typename U >
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>.

Parameters:
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.


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

Hosted by SourceForge.net Logo -- Generated on Fri Aug 21 21:46:39 2009 for XuqRijBuh by doxygen 1.5.8