DART  6.6.2
dart::common::Signal< _Res(_ArgTypes...), Combiner > Class Template Reference

Signal implements a signal/slot mechanism. More...

#include <Signal.hpp>

Public Types

using ResultType = _Res
 
using SlotType = std::function< ResultType(_ArgTypes...)>
 
using SignalType = Signal< _Res(_ArgTypes...), Combiner >
 
using ConnectionBodyType = signal::detail::ConnectionBody< SlotType >
 
using ConnectionSetType = std::set< std::shared_ptr< ConnectionBodyType >, std::owner_less< std::shared_ptr< ConnectionBodyType > >>
 

Public Member Functions

 Signal ()
 Constructor. More...
 
virtual ~Signal ()
 Destructor. More...
 
Connection connect (const SlotType &_slot)
 Connect a slot to the signal. More...
 
Connection connect (SlotType &&_slot)
 Connect a slot to the signal. More...
 
void disconnect (const Connection &_connection) const
 Disconnect given connection. More...
 
void disconnectAll ()
 Disconnect all the connections. More...
 
void cleanupConnections ()
 Cleanup all the disconnected connections. More...
 
std::size_t getNumConnections () const
 Get the number of connections. More...
 
template<typename... ArgTypes>
ResultType raise (ArgTypes &&... _args)
 Raise the signal. More...
 
template<typename... ArgTypes>
ResultType operator() (ArgTypes &&... _args)
 Raise the signal. More...
 
template<typename... ArgTypes>
_Res raise (ArgTypes &&... _args)
 
template<typename... ArgTypes>
_Res operator() (ArgTypes &&... _args)
 

Private Attributes

ConnectionSetType mConnectionBodies
 Connection set. More...
 

Detailed Description

template<typename _Res, typename... _ArgTypes, template< class > class Combiner>
class dart::common::Signal< _Res(_ArgTypes...), Combiner >

Signal implements a signal/slot mechanism.

Member Typedef Documentation

◆ ConnectionBodyType

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
using dart::common::Signal< _Res(_ArgTypes...), Combiner >::ConnectionBodyType = signal::detail::ConnectionBody<SlotType>

◆ ConnectionSetType

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
using dart::common::Signal< _Res(_ArgTypes...), Combiner >::ConnectionSetType = std::set<std::shared_ptr<ConnectionBodyType>, std::owner_less<std::shared_ptr<ConnectionBodyType> >>

◆ ResultType

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
using dart::common::Signal< _Res(_ArgTypes...), Combiner >::ResultType = _Res

◆ SignalType

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
using dart::common::Signal< _Res(_ArgTypes...), Combiner >::SignalType = Signal<_Res(_ArgTypes...), Combiner>

◆ SlotType

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
using dart::common::Signal< _Res(_ArgTypes...), Combiner >::SlotType = std::function<ResultType(_ArgTypes...)>

Constructor & Destructor Documentation

◆ Signal()

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
dart::common::Signal< _Res(_ArgTypes...), Combiner >::Signal

Constructor.

◆ ~Signal()

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
dart::common::Signal< _Res(_ArgTypes...), Combiner >::~Signal
virtual

Destructor.

Member Function Documentation

◆ cleanupConnections()

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
void dart::common::Signal< _Res(_ArgTypes...), Combiner >::cleanupConnections

Cleanup all the disconnected connections.

◆ connect() [1/2]

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
Connection dart::common::Signal< _Res(_ArgTypes...), Combiner >::connect ( const SlotType _slot)

Connect a slot to the signal.

◆ connect() [2/2]

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
Connection dart::common::Signal< _Res(_ArgTypes...), Combiner >::connect ( SlotType &&  _slot)

Connect a slot to the signal.

◆ disconnect()

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
void dart::common::Signal< _Res(_ArgTypes...), Combiner >::disconnect ( const Connection _connection) const

Disconnect given connection.

◆ disconnectAll()

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
void dart::common::Signal< _Res(_ArgTypes...), Combiner >::disconnectAll

Disconnect all the connections.

◆ getNumConnections()

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
std::size_t dart::common::Signal< _Res(_ArgTypes...), Combiner >::getNumConnections

Get the number of connections.

◆ operator()() [1/2]

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
template<typename... ArgTypes>
_Res dart::common::Signal< _Res(_ArgTypes...), Combiner >::operator() ( ArgTypes &&...  _args)

◆ operator()() [2/2]

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
template<typename... ArgTypes>
ResultType dart::common::Signal< _Res(_ArgTypes...), Combiner >::operator() ( ArgTypes &&...  _args)

Raise the signal.

◆ raise() [1/2]

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
template<typename... ArgTypes>
_Res dart::common::Signal< _Res(_ArgTypes...), Combiner >::raise ( ArgTypes &&...  _args)

◆ raise() [2/2]

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
template<typename... ArgTypes>
ResultType dart::common::Signal< _Res(_ArgTypes...), Combiner >::raise ( ArgTypes &&...  _args)

Raise the signal.

Member Data Documentation

◆ mConnectionBodies

template<typename _Res , typename... _ArgTypes, template< class > class Combiner>
ConnectionSetType dart::common::Signal< _Res(_ArgTypes...), Combiner >::mConnectionBodies
private

Connection set.