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.
More...
|
| 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 |
|
| 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 () |
| checkCompatibility is used to get the object contained in the signal. More...
|
|
| 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 |
|
| 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 | addDependencies (const SignalArray_const< Time > &arr) |
|
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 |
|
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,
Thus, the value of dependent signals can be accessed quickly and repeatedly through the Signal::accessCopy () function.
An example:
class MyEntity : public Entity {
public:
SignalPtr<T,int> dep1, dep2;
SignalTimeDependent<T,int> signal;
MyEntity (
const std::string&
name)
: Entity (name)
, signal (
boost::bind (&Entity::computeSignal, this, _1, _2),
dep1 << dep2,
"signalname")
{}
T& computeSignal (T& res, int time)
{
dep1(time);
dep1.access(time);
dep1.recompute(time);
dep1.accessCopy();
dep2.accessCopy();
return res;
}