You.i Engine
CYISignalCallableConnection< CallableType, SignalTypes > Class Template Reference

Detailed Description

template<typename CallableType, typename... SignalTypes>
class CYISignalCallableConnection< CallableType, SignalTypes >

A signal connection class for connection to generic CALLABLE objects, with optional lifetime tracking through a signal handler.

See also
CYISignal

#include <signal/internal/YiSignalCallableConnection.h>

Inheritance diagram for CYISignalCallableConnection< CallableType, SignalTypes >:

Public Types

typedef CallableType YI_SLOT
 

Public Member Functions

 CYISignalCallableConnection (const CYISignalHandler *pSignalHandler, const YI_SLOT &slot, YI_CONNECTION_TYPE connectionType, const CYISignalConnectionID &connectionID=CYISignalConnectionID::CreateUnique())
 
virtual std::unique_ptr< CYISignalAbstractConnectionClone (CYISignalHandler *pSignalHandler, YI_CONNECTION_TYPE eConnectionType) const override
 
virtual void Emit (const SignalTypes &...args) override
 
- Public Member Functions inherited from CYISignalAbstractConnection
virtual ~CYISignalAbstractConnection ()
 
std::unique_ptr< CYISignalAbstractConnectionClone () const
 
std::unique_ptr< CYISignalAbstractConnectionClone (CYISignalHandler *pSignalHandler) const
 
std::unique_ptr< CYISignalAbstractConnectionClone (YI_CONNECTION_TYPE eConnectionType) const
 
CYISignalHandlerGetSignalHandler () const
 
YI_CONNECTION_TYPE GetConnectionType () const
 
CYIThreadHandle GetThreadAffinity (const CYIThreadHandle &defaultAffinity) const
 
bool IsIdentifiedBy (const CYISignalConnectionID &connectionID) const
 
const CYISignalConnectionIDGetConnectionID () const
 

Static Public Attributes

static const size_t Arity = YiFunctionArity<CallableType>::value
 

Protected Attributes

YI_SLOT m_slot
 
- Protected Attributes inherited from CYISignalAbstractConnection
CYISignalHandler *const m_pSignalHandler
 
const CYISignalConnectionID m_connectionID
 
const YI_CONNECTION_TYPE m_connectionType
 

Additional Inherited Members

- Protected Member Functions inherited from CYISignalBaseConnection< SignalTypes... >
 CYISignalBaseConnection (CYISignalHandler *pSignalHandler, YI_CONNECTION_TYPE connectionType, const CYISignalConnectionID &connectionID)
 
- Protected Member Functions inherited from CYISignalAbstractConnection
 CYISignalAbstractConnection (CYISignalHandler *pSignalHandler, YI_CONNECTION_TYPE connectionType, const CYISignalConnectionID &connectionID)
 

Member Typedef Documentation

template<typename CallableType , typename... SignalTypes>
typedef CallableType CYISignalCallableConnection< CallableType, SignalTypes >::YI_SLOT

The type of slot object held by this connection type.

Constructor & Destructor Documentation

template<typename CallableType , typename... SignalTypes>
CYISignalCallableConnection< CallableType, SignalTypes >::CYISignalCallableConnection ( const CYISignalHandler pSignalHandler,
const YI_SLOT slot,
YI_CONNECTION_TYPE  connectionType,
const CYISignalConnectionID connectionID = CYISignalConnectionID::CreateUnique() 
)
inline

Member Function Documentation

template<typename CallableType , typename... SignalTypes>
virtual std::unique_ptr<CYISignalAbstractConnection> CYISignalCallableConnection< CallableType, SignalTypes >::Clone ( CYISignalHandler pSignalHandler,
YI_CONNECTION_TYPE  eConnectionType 
) const
inlineoverridevirtual
template<typename CallableType , typename... SignalTypes>
virtual void CYISignalCallableConnection< CallableType, SignalTypes >::Emit ( const SignalTypes &...  args)
inlineoverridevirtual

Emits the signal through this connection object using arguments args.

Implements CYISignalBaseConnection< SignalTypes... >.

Member Data Documentation

template<typename CallableType , typename... SignalTypes>
const size_t CYISignalCallableConnection< CallableType, SignalTypes >::Arity = YiFunctionArity<CallableType>::value
static

The number of arguments expected by the Callable.

template<typename CallableType , typename... SignalTypes>
YI_SLOT CYISignalCallableConnection< CallableType, SignalTypes >::m_slot
protected

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