OMK::EventSignalEmitterUtil Class Reference

Base class to emit an event. More...

#include <OMKEventSignalEmitterUtil.h>

Inheritance diagram for OMK::EventSignalEmitterUtil:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~EventSignalEmitterUtil ()

Protected Member Functions

 EventSignalEmitterUtil ()
 Constructor.
virtual bool loadParametersUtil (ExtensibleSimulatedObject *owner, const ConfigurationParameterDescriptor *node)
virtual void sendUtil (ExtensibleSimulatedObject *owner)
 The overwritten method.

Protected Attributes

bool _signal
 The flag which indicate if it is a signal or a event.
EventIdentifier _eventId
 The event id.
std::vector< Name_listeners
 The names of the listening objects.

Detailed Description

Base class to emit an event.

Author:
Benoît Chanclou

Definition at line 15 of file OMKEventSignalEmitterUtil.h.


Constructor & Destructor Documentation

EventSignalEmitterUtil::EventSignalEmitterUtil (  )  [protected]

Constructor.

It is protected, because it is only called by the sons.

Definition at line 6 of file OMKEventSignalEmitterUtil.cpp.

00007 : _signal( true ),
00008   _eventId()
00009 {
00010 }

EventSignalEmitterUtil::~EventSignalEmitterUtil (  )  [virtual]

Definition at line 12 of file OMKEventSignalEmitterUtil.cpp.

00013 {
00014 }


Member Function Documentation

bool EventSignalEmitterUtil::loadParametersUtil ( ExtensibleSimulatedObject owner,
const ConfigurationParameterDescriptor node 
) [protected, virtual]

Reimplemented in OMK::ValuedEventSignalEmitterUtilT< T, ModelType >, and OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >.

Definition at line 17 of file OMKEventSignalEmitterUtil.cpp.

References _eventId, _listeners, _signal, OMK::ParametersAccessor::get(), OMK::SimulatedObject::getController(), OMK::Controller::getPointerToSimulatedObjectNamed(), and OMK::SimulatedObject::registerForSignal().

Referenced by OMK::TriggerEmitterExtension::loadExtensionParameters(), OMK::Inp::KeyEmitterExtension::loadExtensionParameters(), OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), and OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil().

00019 {
00020   bool ok = true ;
00021   // Necessary
00022   ok = ok && ParametersAccessor::get( node, "EventName", _eventId, owner ) ;
00023   // Optional by default true
00024   ParametersAccessor::get( node, "Signal", _signal ) ;
00025   // Optional by default empty
00026   ParametersAccessor::get( node, "Listeners", _listeners ) ;
00027   
00028   if( _signal )
00029   {
00030     for( std::vector< Name >::const_iterator i = _listeners.begin() ;
00031          i != _listeners.end() ;
00032          i++ )
00033     {
00034       SimulatedObject *object = owner->getController().getPointerToSimulatedObjectNamed( *i ) ;
00035       if( object ) object->registerForSignal( _eventId ) ;
00036     }
00037     // No more usefull => delete it
00038     _listeners.clear() ;
00039   }
00040 
00041   return ok ; 
00042 }

void EventSignalEmitterUtil::sendUtil ( ExtensibleSimulatedObject owner  )  [protected, virtual]

The overwritten method.

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

Reimplemented in OMK::ValuedEventSignalEmitterUtilT< T, ModelType >.

Definition at line 45 of file OMKEventSignalEmitterUtil.cpp.

References _eventId, _listeners, _signal, OMK::SimulatedObject::fireSignal(), and OMK::SimulatedObject::sendEvent().

Referenced by OMK::Inp::KeyEmitterExtension::action(), and OMK::TriggerEmitterExtension::postComputeParameters().

00046 {
00047   if( _signal )
00048   { // Fire the signal
00049     owner->fireSignal( _eventId ) ;
00050   }
00051   else
00052   { // Send the event for each listener
00053     for( std::vector< Name >::const_iterator i = _listeners.begin() ;
00054          i != _listeners.end() ;
00055          i++ )
00056     {
00057       owner->sendEvent( *i, _eventId ) ;
00058     }
00059   }
00060 }


Member Data Documentation

bool OMK::EventSignalEmitterUtil::_signal [protected]

The flag which indicate if it is a signal or a event.

true, will fire a signal, false, will send a event.

Definition at line 28 of file OMKEventSignalEmitterUtil.h.

Referenced by OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), loadParametersUtil(), OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil(), OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil(), and sendUtil().

EventIdentifier OMK::EventSignalEmitterUtil::_eventId [protected]

The event id.

Definition at line 30 of file OMKEventSignalEmitterUtil.h.

Referenced by OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), loadParametersUtil(), OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil(), OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil(), and sendUtil().

std::vector< Name > OMK::EventSignalEmitterUtil::_listeners [protected]

The names of the listening objects.

Definition at line 32 of file OMKEventSignalEmitterUtil.h.

Referenced by OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), loadParametersUtil(), OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil(), OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil(), and sendUtil().


logo OpenMask

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

Generated with doxygen by Dimitri van Heesch ,   1997-2007