IAlgorithm Class Referenceabstract

Abstract algorithm, base element of OpenViBE processing objectsThis class should be derived by any plugin that is related to data processing. It basically has a parameterable interface contained in the IAlgorithmContext object. This interface stores several typed parameters which can be modified either by outside world in order to provide input paramters to this algorithm or by this algorithm itself in order to produce output parameters. More...

Inheritance diagram for IAlgorithm:
IPluginObject IObject

Public Member Functions

virtual OpenViBE::boolean initialize (OpenViBE::Kernel::IAlgorithmContext &rAlgorithmContext)
 Initializes this algorithm. More...
 
virtual OpenViBE::boolean uninitialize (OpenViBE::Kernel::IAlgorithmContext &rAlgorithmContext)
 Unitializes this algorithm. More...
 
virtual OpenViBE::boolean process (OpenViBE::Kernel::IAlgorithmContext &rAlgorithmContext)=0
 Effectively executes this algorithm. More...
 
- Public Member Functions inherited from IPluginObject
virtual void release (void)=0
 Informs the plugin object it won't be used anymore. More...
 
- Public Member Functions inherited from IObject
virtual OpenViBE::CIdentifier getClassIdentifier (void) const =0
 Returns the final class identifier of the concrete class. More...
 
virtual OpenViBE::boolean isDerivedFromClass (const OpenViBE::CIdentifier &rClassIdentifier) const
 Checks if this object is compatible with a class identifier. More...
 
virtual OpenViBE::boolean acceptVisitor (OpenViBE::IObjectVisitor &rObjectVisitor)
 Requests this object to accept a visitor. More...
 

Detailed Description

Abstract algorithm, base element of OpenViBE processing objects

This class should be derived by any plugin that is related to data processing. It basically has a parameterable interface contained in the IAlgorithmContext object. This interface stores several typed parameters which can be modified either by outside world in order to provide input paramters to this algorithm or by this algorithm itself in order to produce output parameters.

Author
Yann Renard (INRIA/IRISA)
Date
2007-11-06 This is the heart of the extension mechanism of the OpenViBE platform.
See also
OpenViBE::Kernel::IAlgorithmDesc
OpenViBE::Kernel::IAlgorithmContext
Todo:
details about building new plugins

Member Function Documentation

virtual OpenViBE::boolean initialize ( OpenViBE::Kernel::IAlgorithmContext rAlgorithmContext)
inlinevirtual

Initializes this algorithm.

Parameters
rAlgorithmContext[in] : the execution context for this algorithm
Returns
true in case of success.
false in case of error.
virtual OpenViBE::boolean uninitialize ( OpenViBE::Kernel::IAlgorithmContext rAlgorithmContext)
inlinevirtual

Unitializes this algorithm.

Parameters
rAlgorithmContext[in] : the extecution context for this algorithm
Returns
true in case of success.
false in case of error.
Exceptions
thismethod must be noexcept
virtual OpenViBE::boolean process ( OpenViBE::Kernel::IAlgorithmContext rAlgorithmContext)
pure virtual

Effectively executes this algorithm.

Parameters
rAlgorithmContext[in] : the extecution context for this algorithm
Returns
true in case of success.
false in case of error.

When called, this function should get its "input" parameters, do stuffs with them and finally produce "output" parameters.