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

A type of signal that enforces a time dependency between other signals, making sure its inputs are up to date on access, using a incrementing time tick as reference. It works this way: for a given SignalTimeDependent S, the user manually adds dependent signals through the use of the addDependency function. On access (calling the signal S operator () or access(Time) function), if the dependent signals are not up-to-date, i.e. if their [last update] time is less than the current time, their value will be access ()'ed to bring them up-to-date. Thus, the value of dependent signals can be accessed quickly and repeatedly through the accessCopy () function. More...

#include <dynamic-graph/signal-time-dependent.h>

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

Public Member Functions

 SignalTimeDependent (std::string name="")
 SignalTimeDependent (const SignalArray_const< Time > &arr, std::string name="")
 SignalTimeDependent (boost::function2< T &, T &, Time > t, const SignalArray_const< Time > &sig, std::string name="")
virtual ~SignalTimeDependent ()
const T & operator() (const Time &t1)
const T & access (const Time &t1)
virtual void addDependency (const SignalBase< Time > &signal)
virtual void removeDependency (const SignalBase< Time > &signal)
virtual void clearDependencies ()
std::ostream & writeGraph (std::ostream &os) const
std::ostream & displayDependencies (std::ostream &os, const int depth=-1, std::string space="", std::string next1="", std::string next2="") const
virtual bool needUpdate (const Time &t) const
virtual void setPeriodTime (const Time &p)
virtual Time getPeriodTime () const
Public Member Functions inherited from dynamicgraph::Signal< T, Time >
 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 void recompute (const Time &t)
virtual const T & accessCopy () const
virtual std::ostream & display (std::ostream &os) const
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
void setReady (const bool sready=true)
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
Public Member Functions inherited from dynamicgraph::TimeDependency< Time >
 TimeDependency (SignalBase< Time > *sig, const DependencyType dep=DEPENDENCY_TYPE_DEFAULT)
 TimeDependency (SignalBase< Time > *sig, const SignalArray_const< Time > &arr, const DependencyType dep=DEPENDENCY_TYPE_DEFAULT)
virtual ~TimeDependency ()
void addDependency (const SignalBase< Time > &sig)
void removeDependency (const SignalBase< Time > &sig)
void clearDependency ()
std::ostream & displayDependencies (std::ostream &os, const int depth=-1, std::string space="", std::string next1="", std::string next2="") const
bool needUpdate (const Time &t1) const
void setDependencyType (DependencyType dep)
void setNeedUpdateFromAllChildren (const bool b=true)
bool getNeedUpdateFromAllChildren () const
void setPeriodTime (const Time &p)
Time getPeriodTime () const

Additional Inherited Members

Public Types inherited from dynamicgraph::Signal< T, Time >
typedef int * Mutex
typedef int * MutexError
Public Types inherited from dynamicgraph::TimeDependency< Time >
enum  DependencyType {
  TIME_DEPENDENT ,
  BOOL_DEPENDENT ,
  ALWAYS_READY
}
typedef std::list< const SignalBase< Time > * > Dependencies
Public Attributes inherited from dynamicgraph::TimeDependency< Time >
Time lastAskForUpdate
SignalBase< Time > & leader
Dependencies dependencies
bool updateFromAllChildren
DependencyType dependencyType
Time periodTime
Static Public Attributes inherited from dynamicgraph::TimeDependency< Time >
static const DependencyType DEPENDENCY_TYPE_DEFAULT = TIME_DEPENDENT
static const bool ALL_READY_DEFAULT = false
static const Time PERIOD_TIME_DEFAULT = 1
Protected Types inherited from dynamicgraph::Signal< T, Time >
enum  SignalType {
  CONSTANT ,
  REFERENCE ,
  REFERENCE_NON_CONST ,
  FUNCTION
}
Protected Attributes inherited from dynamicgraph::Signal< T, Time >
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 inherited from dynamicgraph::Signal< T, Time >
static const SignalType SIGNAL_TYPE_DEFAULT = CONSTANT
static const bool KEEP_REFERENCE_DEFAULT = false

Detailed Description

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

A type of signal that enforces a time dependency between other signals, making sure its inputs are up to date on access, using a incrementing time tick as reference. It works this way: for a given SignalTimeDependent S, the user manually adds dependent signals through the use of the addDependency function. On access (calling the signal S operator () or access(Time) function), if the dependent signals are not up-to-date, i.e. if their [last update] time is less than the current time, their value will be access ()'ed to bring them up-to-date. Thus, the value of dependent signals can be accessed quickly and repeatedly through the accessCopy () function.

Constructor & Destructor Documentation

◆ SignalTimeDependent() [1/3]

◆ SignalTimeDependent() [2/3]

template<class T, class Time>
dynamicgraph::SignalTimeDependent< T, Time >::SignalTimeDependent ( const SignalArray_const< Time > & arr,
std::string name = "" )

◆ SignalTimeDependent() [3/3]

template<class T, class Time>
dynamicgraph::SignalTimeDependent< T, Time >::SignalTimeDependent ( boost::function2< T &, T &, Time > t,
const SignalArray_const< Time > & sig,
std::string name = "" )

◆ ~SignalTimeDependent()

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

Member Function Documentation

◆ access()

◆ addDependency()

template<class T, class Time>
void dynamicgraph::SignalTimeDependent< T, Time >::addDependency ( const SignalBase< Time > & signal)
virtual

◆ clearDependencies()

template<class T, class Time>
void dynamicgraph::SignalTimeDependent< T, Time >::clearDependencies ( )
virtual

◆ displayDependencies()

template<class T, class Time>
std::ostream & dynamicgraph::SignalTimeDependent< T, Time >::displayDependencies ( std::ostream & os,
const int depth = -1,
std::string space = "",
std::string next1 = "",
std::string next2 = "" ) const
inlinevirtual

◆ getPeriodTime()

template<class T, class Time>
Time dynamicgraph::SignalTimeDependent< T, Time >::getPeriodTime ( ) const
virtual

◆ needUpdate()

template<class T, class Time>
bool dynamicgraph::SignalTimeDependent< T, Time >::needUpdate ( const Time & t) const
virtual

◆ operator()()

template<class T, class Time>
const T & dynamicgraph::SignalTimeDependent< T, Time >::operator() ( const Time & t1)
inlinevirtual

Reimplemented from dynamicgraph::Signal< T, Time >.

References access().

◆ removeDependency()

template<class T, class Time>
void dynamicgraph::SignalTimeDependent< T, Time >::removeDependency ( const SignalBase< Time > & signal)
virtual

◆ setPeriodTime()

template<class T, class Time>
void dynamicgraph::SignalTimeDependent< T, Time >::setPeriodTime ( const Time & p)
virtual

◆ writeGraph()

template<class T, class Time>
std::ostream & dynamicgraph::SignalTimeDependent< T, Time >::writeGraph ( std::ostream & os) const
inlinevirtual

Reimplemented from dynamicgraph::SignalBase< Time >.