IObject Class Referenceabstract

Base class for all the OpenViBE platform objects. More...

Inheritance diagram for IObject:
IKernelLoader IMatrix IMemoryBuffer IStimulationSet IKernelObject IPluginObject IPluginObjectDesc CMatrix CMemoryBuffer CStimulationSet IAlgorithmContext IAlgorithmManager IAlgorithmProto IAlgorithmProxy IAttributable IBoxAlgorithmContext IBoxIO IBoxListenerContext IBoxProto IConfigurable IConfigurationManager IError IErrorManager IKernelContext IKernelDesc IKernelObjectFactory ILogListener IMessage IMetaboxManager IMetadata IObjectVisitorContext IParameter IPlayer IPlayerContext IPlayerManager IPluginManager IPluginModule IPluginModuleContext IScenarioManager IServerExtensionContext IServerExtensionDynamicContext IServerExtensionProto ITypeManager IAlgorithm IBoxAlgorithm IAlgorithmDesc IBoxAlgorithmDesc

Public Member Functions

Class identification
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...
 
Visiting processes
virtual OpenViBE::boolean acceptVisitor (OpenViBE::IObjectVisitor &rObjectVisitor)
 Requests this object to accept a visitor. More...
 

Detailed Description

Base class for all the OpenViBE platform objects.

Author
Yann Renard (INRIA/IRISA)
Date
2006-06-16 Most of the complex objects existing in the OpenViBE platform should derive this base interface. Thus, several operations can be performed in order to work on the object. The most important may be the isDerivedFromClass method that allows the caller to know it the object has specific interface implementation and if the object could finally be casted in this interface or subclass. Several interfaces are provided in the OpenViBE specficiation but custom class could also be created. It is the responsability of the developer to notify the user of what interfaces are implemented in a concrete class.

See isDerivedFromClass to have a sample of how this function could be used.

Member Function Documentation

virtual OpenViBE::CIdentifier getClassIdentifier ( void  ) const
pure virtual

Returns the final class identifier of the concrete class.

Returns
The class identifier of this object.

This method should return the class identifier of the concrete instanciated class.

virtual OpenViBE::boolean isDerivedFromClass ( const OpenViBE::CIdentifier rClassIdentifier) const
inlinevirtual

Checks if this object is compatible with a class identifier.

Parameters
rClassIdentifier[in] : the class identifier you want to test this object compatibility with
Returns
true if this object si compatible with the given class identifier (this means the concrete class overloads the class with given class identifier) and false when this object is not compatible.

This method should be used to check object compatibility with super classes and interfaces. For any concrete class instance derived from OpenViBE::IObject, one can check if plugin functions are implemented and so on... see OpenViBE::Plugins::IPluginObject for an example...

virtual OpenViBE::boolean acceptVisitor ( OpenViBE::IObjectVisitor &  rObjectVisitor)
inlinevirtual

Requests this object to accept a visitor.

Parameters
rObjectVisitor[in] : the visitor reference which should act on this object
Returns
true in case of success.
false in case of error.