SigSlot::Signal Class Reference

Abstract 'Event Dispatcher'. More...

#include <Signal.hxx>

List of all members.

Public Types

typedef std::stack< unsignedtConnectionIdStack
typedef unsigned tConnectionId

Public Member Functions

virtual ~Signal ()
virtual void FreeConnection (Connection *conn)=0
 Removes a connection.

Protected Member Functions

void FreeConnectionId (tConnectionId)
tConnectionId AssignConnection ()

Static Protected Attributes

static tConnectionId smLastConnectionId = 0

Detailed Description

Abstract 'Event Dispatcher'.

Sometimes, is very useful that when an object is subject of a certain message, or state change, must notify this change to a number of listeners. This situation, albeit it can be modeled quite neatly in OOP suffers a major drawback: coupling. Coupling tipically risks the possibility of reusing a certain object due to the fact that the caller must know to some extent the callee interface.

However there exist some solutions to this known problem. One of them is the 'Signal and Slot' idiom, which features an extremely low coupling between callers and callees. For more details, take a look on the CLAM Signal & Slot Library.

This class is an abstract one, already implementing common behaviour, the signal and slot connection handling issues.

Definition at line 50 of file Signal.hxx.

Member Typedef Documentation

Definition at line 54 of file Signal.hxx.

Definition at line 53 of file Signal.hxx.

Constructor & Destructor Documentation

SigSlot::Signal::~Signal (  )  [virtual]


Class destructor

Definition at line 29 of file Signal.cxx.

Member Function Documentation

Signal::tConnectionId SigSlot::Signal::AssignConnection (  )  [protected]
virtual void SigSlot::Signal::FreeConnection ( Connection conn  )  [pure virtual]
void SigSlot::Signal::FreeConnectionId ( Signal::tConnectionId  freedConnectionId  )  [protected]

Member Data Documentation

Definition at line 76 of file Signal.hxx.

Referenced by AssignConnection().

The documentation for this class was generated from the following files:
Generated by  doxygen 1.6.3