#include <OMKTriggerContainerExtension.h>
Inheritance diagram for OMK::MultiTriggerContainerExtension:
Public Member Functions | |
DECLARE_EXTENSION_FACTORY (MultiTriggerContainerExtension) | |
Factory and constructor/destructor. | |
Protected Member Functions | |
Configuration loaders | |
virtual bool | loadObjectParameters (const ConfigurationParameterDescriptor *node) |
Configuration parameters loader of TriggerContainerExtension. | |
virtual bool | loadExtensionParameters (const ConfigurationParameterDescriptor *node) |
Configuration parameters loader of TriggerContainerExtension. | |
Computation | |
virtual void | preComputeParameters () |
This method is called during compute by the extensible simulated object. | |
virtual void | postComputeParameters () |
This method is called during compute by the extensible simulated object. | |
Protected Attributes | |
int | _default |
Default index. | |
std::vector< ExtensionManager > | _extensionsSets |
Extensions managers. | |
IAttributeBaseT< int > * | _trigger |
The trigger. |
The trigger is a OMK::IAttributeBaseT< int > "integer attribute" which defines which extensions list is use during compute steps.
Warning The event listeners declared by the extension, are not desactivated.
The configuration is similar to the extensions in a simulated object.
container { Class TriggerContainer ExtensionsSet0 { ... LoadParametersOrder [ ... ] PreComputeOrder [ ... ] PostComputeOrder [ ... ] } ExtensionsSet1 { ... LoadParametersOrder [ ... ] PreComputeOrder [ ... ] PostComputeOrder [ ... ] } ... TriggerId "TheTriggerAttributeId" // the id of the integer attribute which is the trigger Default 1 }
The orders are optionals.
Default is the index used if the trigger is out of range.
Definition at line 159 of file OMKTriggerContainerExtension.h.
OMK::MultiTriggerContainerExtension::DECLARE_EXTENSION_FACTORY | ( | MultiTriggerContainerExtension | ) |
Factory and constructor/destructor.
bool MultiTriggerContainerExtension::loadObjectParameters | ( | const ConfigurationParameterDescriptor * | node | ) | [protected, virtual] |
Configuration parameters loader of TriggerContainerExtension.
Reimplemented from OMK::Extension.
Definition at line 146 of file OMKTriggerContainerExtension.cpp.
References _extensionsSets.
00147 { 00148 bool ok = true ; 00149 for( size_t i = 0 ; i < _extensionsSets.size() ; i++ ) 00150 { 00151 ok = _extensionsSets[ i ].loadFromObjectParameters( node ) && ok ; 00152 } 00153 return ok ; 00154 }
bool MultiTriggerContainerExtension::loadExtensionParameters | ( | const ConfigurationParameterDescriptor * | node | ) | [protected, virtual] |
Configuration parameters loader of TriggerContainerExtension.
Reimplemented from OMK::Extension.
Definition at line 156 of file OMKTriggerContainerExtension.cpp.
References _default, _extensionsSets, OMK::ExtensionT< SimulatedObjectType >::_owner, _trigger, and OMK::ParametersAccessor::get().
00157 { 00158 bool ok = true ; 00159 //--- The trigger boolean attribute 00160 Name triggerId ; 00161 ok = ok && ParametersAccessor::get( node, "TriggerId", triggerId, _owner ) ; 00162 _trigger = _owner->getBaseAttribute< int >( triggerId ) ; 00163 ok = ok && _trigger != 0 ; 00164 ParametersAccessor::get( node, "Default", _default ) ; 00165 00166 //---Load Extensions 00167 for( size_t i = 0 ; i < _extensionsSets.size() ; i++ ) 00168 { 00169 std::ostringstream name ; 00170 name << "ExtensionsSet" << i ; 00171 const ConfigurationParameterDescriptor* extensionsNode = 0 ; 00172 if( ParametersAccessor::get( node, name.str(), extensionsNode ) ) 00173 { 00174 //Load Extension order if there is one 00175 _extensionsSets[ i ].loadOrder( extensionsNode, "LoadParametersOrder", _extensionsSets[ i ]._orderedExtensionsForLoadParameters ) ; 00176 //Load extension 00177 ok = ok && _extensionsSets[ i ].loadFromExtensionsParameters( extensionsNode ) ; 00178 _extensionsSets[ i ].loadOrder( extensionsNode, "PreComputeOrder" , _extensionsSets[ i ]._orderedExtensionsForPreCompute ) ; 00179 _extensionsSets[ i ].loadOrder( extensionsNode, "PostComputeOrder" , _extensionsSets[ i ]._orderedExtensionsForPostCompute ) ; 00180 } 00181 } 00182 00183 return ok ; 00184 }
void MultiTriggerContainerExtension::preComputeParameters | ( | ) | [protected, virtual] |
This method is called during compute by the extensible simulated object.
Reimplemented from OMK::Extension.
Definition at line 186 of file OMKTriggerContainerExtension.cpp.
References _default, _extensionsSets, _trigger, and OMK::IAccessorT< T >::get().
00187 { 00188 int index = _trigger->get() ; 00189 index = ( index < 0 || (int)_extensionsSets.size() < index ) ? _default : index ; 00190 _extensionsSets[ index ].preComputeExtension() ; 00191 }
void MultiTriggerContainerExtension::postComputeParameters | ( | ) | [protected, virtual] |
This method is called during compute by the extensible simulated object.
Reimplemented from OMK::Extension.
Definition at line 193 of file OMKTriggerContainerExtension.cpp.
References _default, _extensionsSets, _trigger, and OMK::IAccessorT< T >::get().
00194 { 00195 int index = _trigger->get() ; 00196 index = ( index < 0 || (int)_extensionsSets.size() < index ) ? _default : index ; 00197 _extensionsSets[ index ].postComputeExtension() ; 00198 }
int OMK::MultiTriggerContainerExtension::_default [protected] |
Default index.
By default it is 0
Definition at line 186 of file OMKTriggerContainerExtension.h.
Referenced by loadExtensionParameters(), postComputeParameters(), and preComputeParameters().
std::vector< ExtensionManager > OMK::MultiTriggerContainerExtension::_extensionsSets [protected] |
Extensions managers.
Definition at line 188 of file OMKTriggerContainerExtension.h.
Referenced by loadExtensionParameters(), loadObjectParameters(), postComputeParameters(), and preComputeParameters().
IAttributeBaseT< int >* OMK::MultiTriggerContainerExtension::_trigger [protected] |
The trigger.
Definition at line 190 of file OMKTriggerContainerExtension.h.
Referenced by loadExtensionParameters(), postComputeParameters(), and preComputeParameters().
Documentation generated on Mon Jun 9 11:46:03 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |