A Processing Object that delays a certain number of ProcessingDataObjects wherever the specific object it is. More...
#include <TokenDelay.hxx>
Public Member Functions | |
TokenDelay (const TokenDelayConfig &cfg=TokenDelayConfig()) | |
virtual | ~TokenDelay () |
bool | ConcreteConfigure (const ProcessingConfig &c) |
Concrete configuration change method. | |
virtual const ProcessingConfig & | GetConfig () const |
Configuration access. | |
virtual bool | Do (void) |
Supervised-mode execution method. | |
virtual bool | Do (const T &in, T &out) |
Non-supervised-mode execution method. | |
void | Debug () const |
Debug method for viewing all the relevant parameter. | |
void | FulfillsInvariant () const |
It cheks many invariants restrictions of the object and throws an error if they are not fulfilled. | |
const char * | GetClassName () const |
Override it in every subclass and retur the name of that class. | |
TSize | RealDelay () const |
Informative value about the current delay applied (different from the requested). | |
unsigned | MaxDelay () const |
unsigned | GivenDelay () |
A Processing Object that delays a certain number of ProcessingDataObjects wherever the specific object it is.
This class is only usefull in the non supervised context so it hasn't the generic Do() implemented It works buffering these ProcessingDataObjects, feeded by using the arguments of the Do(...) method. Important: the processig data objects (tokens) that flows through the token delay can only be deleted once have got out from the delay. It can also happen that decrementing the delay value, some tokens will never get out. And these tokens will be deleted by the delay object.
Definition at line 76 of file TokenDelay.hxx.
CLAM::TokenDelay< T >::TokenDelay | ( | const TokenDelayConfig & | cfg = TokenDelayConfig() |
) | [inline] |
Definition at line 88 of file TokenDelay.hxx.
virtual CLAM::TokenDelay< T >::~TokenDelay | ( | ) | [inline, virtual] |
bool CLAM::TokenDelay< T >::ConcreteConfigure | ( | const ProcessingConfig & | c | ) | [inline, virtual] |
Concrete configuration change method.
The generic calls this one. It will accept such changes when not in running mode.
Reimplemented from CLAM::Processing.
Definition at line 203 of file TokenDelay.hxx.
References CLAM::Processing::CopyAsConcreteConfig(), CLAM::InControl< ControlDataType >::DoControl(), and CLAM::InControl< ControlDataType >::GetLastValue().
void CLAM::TokenDelay< T >::Debug | ( | ) | const [inline] |
Debug method for viewing all the relevant parameter.
Definition at line 278 of file TokenDelay.hxx.
bool CLAM::TokenDelay< T >::Do | ( | const T & | in, | |
T & | out | |||
) | [inline, virtual] |
Non-supervised-mode execution method.
in | Reference to the input ProcessingData object. | |
out | Pointer to a ProcessingData that has previously been entered. this object pointed by out parameter can be safely deleted only when the last call to this Do method has output a different object. In others words: when the delay value gets increased, the out object can be the same for a number of Do executions. |
Definition at line 234 of file TokenDelay.hxx.
References CLAM::InControl< ControlDataType >::GetLastValue().
bool CLAM::TokenDelay< T >::Do | ( | void | ) | [inline, virtual] |
Supervised-mode execution method.
Because this class only works in non-supervised mode, it hrows an error
Implements CLAM::Processing.
Definition at line 218 of file TokenDelay.hxx.
References CLAM::InPort< Token >::Consume(), CLAM::OutPort< Token >::GetData(), CLAM::InPort< Token >::GetData(), and CLAM::OutPort< Token >::Produce().
Referenced by CLAM::SpectralDelay::Do().
void CLAM::TokenDelay< T >::FulfillsInvariant | ( | ) | const [inline] |
It cheks many invariants restrictions of the object and throws an error if they are not fulfilled.
Very usefull when developing or maintaining this class.
Definition at line 294 of file TokenDelay.hxx.
const char* CLAM::TokenDelay< T >::GetClassName | ( | ) | const [inline, virtual] |
Override it in every subclass and retur the name of that class.
Implements CLAM::Processing.
Definition at line 136 of file TokenDelay.hxx.
virtual const ProcessingConfig& CLAM::TokenDelay< T >::GetConfig | ( | ) | const [inline, virtual] |
Configuration access.
Reimplemented from CLAM::Processing.
Definition at line 108 of file TokenDelay.hxx.
unsigned CLAM::TokenDelay< T >::GivenDelay | ( | ) | [inline] |
Definition at line 149 of file TokenDelay.hxx.
unsigned CLAM::TokenDelay< T >::MaxDelay | ( | ) | const [inline] |
Definition at line 145 of file TokenDelay.hxx.
TSize CLAM::TokenDelay< T >::RealDelay | ( | ) | const [inline] |
Informative value about the current delay applied (different from the requested).
Definition at line 141 of file TokenDelay.hxx.