Lodestar
An integrated real-time control package in C++
ls::blocks::Signal< TObject, TIndicated > Class Template Reference
Inheritance diagram for ls::blocks::Signal< TObject, TIndicated >:
[legend]
Collaboration diagram for ls::blocks::Signal< TObject, TIndicated >:
[legend]

Public Types

using Object = TObject
 
using type = TIndicated
 

Public Member Functions

 Signal (const TObject &obj)
 
 Signal (const TObject *obj)
 
unsigned int id () const
 
 operator TObject () const
 
 operator const TObject * () const
 
 operator TObject * ()
 
Signal< TObject > & operator= (const TObject &obj)
 
Signal< TObject > & operator= (const Signal< TObject > &signal)
 
template<typename TObject2 , typename std::enable_if< std::is_convertible< TObject2, TObject >::value, TObject2 >::type * = nullptr>
Signal< TObject > & operator= (const TObject2 &obj)
 
template<typename TObject2 , typename std::enable_if<!std::is_convertible< TObject2, TObject >::value, TObject2 >::type * = nullptr>
Signal< Object > & operator= (const TObject2 &obj)
 
template<typename TObject2 , typename std::enable_if< std::is_convertible< TObject2, TObject >::value, TObject2 >::type * = nullptr>
Signal< TObject > & operator= (const Signal< TObject2 > &signal)
 
template<typename TObject2 , typename std::enable_if<!std::is_convertible< TObject2, TObject >::value, TObject2 >::type * = nullptr>
Signal< Object > & operator= (const Signal< TObject2 > &signal)
 
bool isDynamicData () const
 
template<typename TInstance , typename TShadow = TObject>
std::enable_if<!std::is_same< TShadow, ls::aux::DynamicData >::value, bool >::type isType () const
 
template<typename TInstance , typename TShadow = TObject>
std::enable_if< std::is_same< TShadow, ls::aux::DynamicData >::value, bool >::type isType () const
 
bool connect (Signal< TObject > *other)
 
bool connect (Signal< TObject > &other)
 
bool disconnect (Signal< TObject > *other)
 
bool disconnect (Signal< TObject > &other)
 
void propagate ()
 
- Public Member Functions inherited from ls::blocks::SignalBase
 SignalBase (unsigned int id)
 
unsigned int id () const
 
SignalBasegetConnection (int idx)
 

Static Public Member Functions

template<typename TInstance >
static bool isSignal ()
 
template<typename TInstance >
static bool isSignal (const TInstance &)
 
template<typename TInstance >
static std::enable_if< ls::aux::TemplateTraits::isInstance< TInstance, Signal >::value, TInstance >::type toSignal (const TInstance &obj)
 
template<typename TInstance >
static std::enable_if<!ls::aux::TemplateTraits::isInstance< TInstance, Signal >::value, Signal< TInstance > >::type toSignal (const TInstance &obj)
 
- Static Public Member Functions inherited from ls::blocks::SignalBase
static unsigned int next ()
 

Public Attributes

Object object
 
- Public Attributes inherited from ls::blocks::SignalBase
int slotId
 
int blockId
 Slot index identifier (local counter from 0).
 
bool isInput
 Block index (global counter).
 
int connectionNumber = 0
 True if the signal is an input, false otherwise.
 
::std::set< SignalBase * > connectionPtrs
 Number of connections the SignalBase is currently engaged in.
 

Friends

template<typename TObject1 , typename TObject2 >
std::enable_if< std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator+ (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if<!std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator+ (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if< std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator- (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if<!std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator- (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if< std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator* (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if<!std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator* (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if< std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator/ (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 
template<typename TObject1 , typename TObject2 >
std::enable_if<!std::is_convertible< TObject1, TObject2 >::value, Signal< TObject1 > >::type operator/ (const Signal< TObject1 > &signal1, const Signal< TObject2 > &signal2)
 

Additional Inherited Members

- Protected Attributes inherited from ls::blocks::SignalBase
unsigned int id_
 
- Static Protected Attributes inherited from ls::blocks::SignalBase
static unsigned int ID = 0
 

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