OMK::TriggerEmitterExtension Class Reference
[User inputs]

Extension to emit an event on a trigger front. More...

#include <OMKTriggerEmitterExtension.h>

Inheritance diagram for OMK::TriggerEmitterExtension:

Inheritance graph
[legend]
Collaboration diagram for OMK::TriggerEmitterExtension:

Collaboration graph
[legend]
List of all members.

Protected Member Functions

virtual bool loadExtensionParameters (const ConfigurationParameterDescriptor *node)
 Configuration parameters loader of Extension.
virtual void postComputeParameters ()
 The overwritten method.

Protected Attributes

IAttributeBaseT< bool > * _trigger

Private Member Functions

 DECLARE_EXTENSION_FACTORY (TriggerEmitterExtension)

Detailed Description

Extension to emit an event on a trigger front.

Date:
2007-11-14
Author:
Benoît Chanclou
Defines an extension which can be used with any object. This extension emits a event with a defined id when a trigger comes to true.

The creation is done dynamically through the following configuration:

visualisation
{
  Class OgreVis
  ...
  Extensions
  {
    plus
    {
            Class TriggerEmitter
      EventName eventId // The id of the event or signal
      Signal on/off // by default is set to on 
                    // on: the extension fire a signal, off: the extension emit a event
      Listeners [ obj1 obj2 ... ] // the list of the object which listen
      TriggerId "TheTriggerAttributeId" // the id of the boolean attribute which is the trigger
    }
    ...
  }
}
 *

Definition at line 45 of file OMKTriggerEmitterExtension.h.


Member Function Documentation

OMK::TriggerEmitterExtension::DECLARE_EXTENSION_FACTORY ( TriggerEmitterExtension   )  [private]

bool TriggerEmitterExtension::loadExtensionParameters ( const ConfigurationParameterDescriptor node  )  [protected, virtual]

Configuration parameters loader of Extension.

Parameters:
[in] node the root node of the configuration parameter, null if no node defined for the extension.
Returns:
should return true if all the parameters are well retrieved.
Overwrite this method to initialise the extension. This method allows the extension to get parameters of its own field.
Be careful, loadObjectParameters method is called before this method.
See How to configure an extension ? for details.

Reimplemented from OMK::Extension.

Definition at line 28 of file OMKTriggerEmitterExtension.cpp.

References OMK::ExtensionT< OMK::ExtensibleSimulatedObject >::_owner, _trigger, OMK::ParametersAccessor::get(), OMK::ExtensibleSimulatedObject::getBaseAttribute(), and OMK::EventSignalEmitterUtil::loadParametersUtil().

00029 {
00030   bool ok = ExtensionT< OMK::ExtensibleSimulatedObject >::loadExtensionParameters( node ) 
00031       && loadParametersUtil( _owner, node ) ;
00032   Name triggerId ;
00033   ok = ok && ParametersAccessor::get( node, "TriggerId", triggerId, _owner ) ;
00034   _trigger = _owner->getBaseAttribute< bool >( triggerId ) ;
00035   ok = ok && _trigger != 0 ;
00036   return ok ;
00037 }

void TriggerEmitterExtension::postComputeParameters (  )  [protected, virtual]

The overwritten method.

Fire a signal or send an event according to the configuration.

Reimplemented from OMK::Extension.

Definition at line 40 of file OMKTriggerEmitterExtension.cpp.

References OMK::ExtensionT< OMK::ExtensibleSimulatedObject >::_owner, _trigger, OMK::IAccessorT< T >::get(), OMK::IAttribute::isUpdated(), and OMK::EventSignalEmitterUtil::sendUtil().

00041 {
00042   if( _trigger->isUpdated() && _trigger->get() )
00043   {
00044     sendUtil( _owner ) ;
00045   }
00046 }


Member Data Documentation

IAttributeBaseT< bool >* OMK::TriggerEmitterExtension::_trigger [protected]

Definition at line 51 of file OMKTriggerEmitterExtension.h.

Referenced by loadExtensionParameters(), and postComputeParameters().


logo OpenMask

Documentation generated on Mon Jun 9 11:46:03 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007