Loading...
Searching...
No Matches
dynamicgraph::Signal< T, Time > Class Template Reference

Signals link I/O ports of entities. They can be constant-valued signals, or copy the value of a heap variable, or evaluated as a function. See SignalPtr and SignalTimeDependent for other types of signals, and SignalArray for a way of grouping them. More...

#include <dynamic-graph/signal.h>

Inheritance diagram for dynamicgraph::Signal< T, Time >:
[legend]
Collaboration diagram for dynamicgraph::Signal< T, Time >:
[legend]

Public Types

typedef int * Mutex
typedef int * MutexError

Public Member Functions

 Signal (std::string name)
virtual ~Signal ()
virtual void get (std::ostream &value) const
virtual void set (std::istringstream &value)
virtual void trace (std::ostream &os) const
virtual void setConstant (const T &t)
virtual void setReference (const T *t, Mutex *mutexref=NULL)
virtual void setReferenceNonConstant (T *t, Mutex *mutexref=NULL)
virtual void setFunction (boost::function2< T &, T &, Time > t, Mutex *mutexref=NULL)
bool getKeepReference ()
void setKeepReference (const bool &b)
virtual const T & access (const Time &t)
virtual void recompute (const Time &t)
virtual const T & accessCopy () const
virtual std::ostream & display (std::ostream &os) const
virtual const T & operator() (const Time &t)
virtual Signal< T, Time > & operator= (const T &t)
 operator const T & () const
virtual void getClassName (std::string &aClassName) const
virtual void checkCompatibility ()
Public Member Functions inherited from dynamicgraph::SignalBase< Time >
 SignalBase (std::string name="")
virtual ~SignalBase ()
virtual const Time & getTime () const
virtual void setTime (const Time &t)
const bool & getReady () const
const std::string & getName () const
void getClassName (std::string &aClassName) const
virtual void setPeriodTime (const Time &)
virtual Time getPeriodTime () const
virtual void addDependency (const SignalBase< Time > &)
virtual void removeDependency (const SignalBase< Time > &)
virtual void clearDependencies ()
virtual bool needUpdate (const Time &) const
void setReady (const bool sready=true)
virtual std::ostream & writeGraph (std::ostream &os) const
virtual std::ostream & displayDependencies (std::ostream &os, const int=-1, std::string space="", std::string next1="", std::string="") const
virtual void plug (SignalBase< Time > *sigarg)
virtual void unplug ()
virtual bool isPlugged () const
virtual SignalBase< Time > * getPluged () const
virtual void setConstantDefault ()
std::string shortName () const
virtual void ExtractNodeAndLocalNames (std::string &LocalName, std::string &NodeName) const

Protected Types

enum  SignalType {
  CONSTANT ,
  REFERENCE ,
  REFERENCE_NON_CONST ,
  FUNCTION
}

Protected Attributes

SignalType signalType
T Tcopy1
T Tcopy2
T * Tcopy
bool copyInit
const T * Treference
T * TreferenceNonConst
boost::function2< T &, T &, Time > Tfunction
bool keepReference
Mutex * providerMutex
Protected Attributes inherited from dynamicgraph::SignalBase< Time >
std::string name
Time signalTime
bool ready

Static Protected Attributes

static const SignalType SIGNAL_TYPE_DEFAULT = CONSTANT
static const bool KEEP_REFERENCE_DEFAULT = false

Detailed Description

template<class T, class Time>
class dynamicgraph::Signal< T, Time >

Signals link I/O ports of entities. They can be constant-valued signals, or copy the value of a heap variable, or evaluated as a function. See SignalPtr and SignalTimeDependent for other types of signals, and SignalArray for a way of grouping them.

There are several ways to specify the value output by a signal:

  • using the function setConstant(T) to set the value of the signal to T;
  • using the function setReference(mutex, T*) to set the value from a pointer, whose access is restricted by a mutex;
  • using the function setFunction(boost::function2) that will be called when the signal's value is accessed.

Member Typedef Documentation

◆ Mutex

template<class T, class Time>
typedef int* dynamicgraph::Signal< T, Time >::Mutex

◆ MutexError

template<class T, class Time>
typedef int* dynamicgraph::Signal< T, Time >::MutexError

Member Enumeration Documentation

◆ SignalType

template<class T, class Time>
enum dynamicgraph::Signal::SignalType
protected
Enumerator
CONSTANT 
REFERENCE 
REFERENCE_NON_CONST 
FUNCTION 

Constructor & Destructor Documentation

◆ Signal()

◆ ~Signal()

template<class T, class Time>
virtual dynamicgraph::Signal< T, Time >::~Signal ( )
inlinevirtual

Member Function Documentation

◆ access()

◆ accessCopy()

◆ checkCompatibility()

template<class T, class Time>
virtual void dynamicgraph::Signal< T, Time >::checkCompatibility ( )
inlinevirtual

◆ display()

template<class T, class Time>
std::ostream & dynamicgraph::Signal< T, Time >::display ( std::ostream & os) const
virtual

◆ get()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::get ( std::ostream & value) const
virtual

◆ getClassName()

template<class T, class Time>
virtual void dynamicgraph::Signal< T, Time >::getClassName ( std::string & aClassName) const
inlinevirtual

◆ getKeepReference()

template<class T, class Time>
bool dynamicgraph::Signal< T, Time >::getKeepReference ( )
inline

References keepReference.

◆ operator const T &()

template<class T, class Time>
dynamicgraph::Signal< T, Time >::operator const T & ( ) const
inline

◆ operator()()

template<class T, class Time>
virtual const T & dynamicgraph::Signal< T, Time >::operator() ( const Time & t)
inlinevirtual

◆ operator=()

template<class T, class Time>
Signal< T, Time > & dynamicgraph::Signal< T, Time >::operator= ( const T & t)
virtual

◆ recompute()

template<class T, class Time>
virtual void dynamicgraph::Signal< T, Time >::recompute ( const Time & t)
inlinevirtual

Reimplemented from dynamicgraph::SignalBase< Time >.

References access().

◆ set()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::set ( std::istringstream & value)
virtual

◆ setConstant()

◆ setFunction()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::setFunction ( boost::function2< T &, T &, Time > t,
Mutex * mutexref = NULL )
virtual

◆ setKeepReference()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::setKeepReference ( const bool & b)
inline

References keepReference.

◆ setReference()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::setReference ( const T * t,
Mutex * mutexref = NULL )
virtual

◆ setReferenceNonConstant()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::setReferenceNonConstant ( T * t,
Mutex * mutexref = NULL )
virtual

◆ trace()

template<class T, class Time>
void dynamicgraph::Signal< T, Time >::trace ( std::ostream & os) const
virtual

Member Data Documentation

◆ copyInit

◆ KEEP_REFERENCE_DEFAULT

template<class T, class Time>
const bool dynamicgraph::Signal< T, Time >::KEEP_REFERENCE_DEFAULT = false
staticprotected

◆ keepReference

template<class T, class Time>
bool dynamicgraph::Signal< T, Time >::keepReference
protected

◆ providerMutex

template<class T, class Time>
Mutex* dynamicgraph::Signal< T, Time >::providerMutex
protected

◆ SIGNAL_TYPE_DEFAULT

template<class T, class Time>
const SignalType dynamicgraph::Signal< T, Time >::SIGNAL_TYPE_DEFAULT = CONSTANT
staticprotected

◆ signalType

template<class T, class Time>
SignalType dynamicgraph::Signal< T, Time >::signalType
protected

◆ Tcopy

template<class T, class Time>
T* dynamicgraph::Signal< T, Time >::Tcopy
protected

Referenced by accessCopy(), and checkCompatibility().

◆ Tcopy1

template<class T, class Time>
T dynamicgraph::Signal< T, Time >::Tcopy1
protected

◆ Tcopy2

template<class T, class Time>
T dynamicgraph::Signal< T, Time >::Tcopy2
protected

◆ Tfunction

template<class T, class Time>
boost::function2<T&,T&,Time> dynamicgraph::Signal< T, Time >::Tfunction
protected

Referenced by access(), and setFunction().

◆ Treference

template<class T, class Time>
const T* dynamicgraph::Signal< T, Time >::Treference
protected

◆ TreferenceNonConst

template<class T, class Time>
T* dynamicgraph::Signal< T, Time >::TreferenceNonConst
protected