39 #ifndef ORO_SIGNAL_BASE_HPP    40 #define ORO_SIGNAL_BASE_HPP    42 #include <boost/intrusive_ptr.hpp>    43 #include <boost/function.hpp>    45 #include "../rtt-config.h"    47 #if defined(OROBLD_OS_NO_ASM)    48 #define ORO_SIGNAL_USE_RT_LIST    50 #define ORO_SIGNAL_USE_LIST_LOCK_FREE    53 #include "../os/Atomic.hpp"    54 #ifdef ORO_SIGNAL_USE_LIST_LOCK_FREE    56 #include <boost/shared_ptr.hpp>    58 #ifdef ORO_SIGNAL_USE_RT_LIST    59 #include "../os/Mutex.hpp"    60 #include "../os/rt_list.hpp"    62 #include "../os/Mutex.hpp"   132 #ifdef ORO_SIGNAL_USE_LIST_LOCK_FREE   135 #ifdef ORO_SIGNAL_USE_RT_LIST   138             typedef std::list< connection_t > connections_list;
   140             typedef connections_list::iterator iterator;
   141             typedef connections_list::iterator const_iterator;
   146             void conn_setup( connection_t conn );
   148             void conn_connect( connection_t conn );
   150             void conn_disconnect( connection_t conn );
   152             void conn_destroy( connection_t conn );
   155 #ifdef ORO_SIGNAL_USE_LIST_LOCK_FREE   165 #ifdef ORO_SIGNAL_USE_RT_LIST   204             void reserve(
size_t conns);
   208             virtual int arity() 
const = 0;
 
Implements a list with real-time insertion/removal of elements. 
The base signal class which stores connection objects. 
C++ abstraction of atomic integer operations. 
void RTT_API intrusive_ptr_add_ref(RTT::internal::IntrusiveStorage *p)
ListLockFree< connection_t > connections_list
void RTT_API intrusive_ptr_release(RTT::internal::IntrusiveStorage *p)
boost::intrusive_ptr< ConnectionBase > shared_ptr
A connection 'memorises' the connection between an event and an event handler function. 
os::AtomicInt refcount
We require an internal refcount to ease self-addition and removal of this connection. 
connections_list mconnections
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute. 
An object oriented wrapper around a recursive mutex. 
ConnectionBase::shared_ptr connection_t