#include <OMKEventSignalEmitterUtil.h>
Inheritance diagram for OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >:
Public Member Functions | |
virtual | ~MultiValuedEventSignalEmitterUtilT () |
Protected Member Functions | |
MultiValuedEventSignalEmitterUtilT () | |
Constructor. | |
virtual bool | loadParametersUtil (ExtensibleSimulatedObject *owner, const ConfigurationParameterDescriptor *node) |
virtual void | sendUtil (ExtensibleSimulatedObject *owner, int index) |
The overwritten method. | |
Protected Attributes | |
std::vector< T > | _values |
The value to send. | |
int | _default |
Default index. |
Definition at line 116 of file OMKEventSignalEmitterUtil.h.
OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::MultiValuedEventSignalEmitterUtilT | ( | ) | [inline, protected] |
Constructor.
It is protected, because it is only called by the sons.
Definition at line 122 of file OMKEventSignalEmitterUtil.h.
00123 : EventSignalEmitterUtil(), 00124 _default( 0 ) 00125 { 00126 }
virtual OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::~MultiValuedEventSignalEmitterUtilT | ( | ) | [inline, virtual] |
virtual bool OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil | ( | ExtensibleSimulatedObject * | owner, | |
const ConfigurationParameterDescriptor * | node | |||
) | [inline, protected, virtual] |
Reimplemented from OMK::EventSignalEmitterUtil.
Definition at line 131 of file OMKEventSignalEmitterUtil.h.
References OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::_default, OMK::EventSignalEmitterUtil::_eventId, OMK::EventSignalEmitterUtil::_listeners, OMK::EventSignalEmitterUtil::_signal, OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::_values, OMK::ParametersAccessor::get(), OMK::ExtensibleSimulatedObject::getAttribute(), OMK::Name::getCString(), OMK::EventId::getCurrentValueEventId(), OMK::SimulatedObject::getName(), OMK::EventSignalEmitterUtil::loadParametersUtil(), and OMERROR.
Referenced by OMK::MultiTriggerEmitterExtensionT< T, ModelType >::loadExtensionParameters().
00133 { 00134 bool ok = true ; 00135 if( ParametersAccessor::get( node, "AttributeId", _eventId, owner ) ) 00136 { 00137 IAttribute * attribute = owner->getAttribute( _eventId ) ; 00138 ok = ok && attribute ; 00139 if( !attribute ) OMERROR( "Attribute " << _eventId << " cannot be found" ) ; 00140 if( ok ) 00141 { 00142 attribute->activateSetByEventOf() ; 00143 _eventId = EventId::getCurrentValueEventId( _eventId.getCString() ) ; 00144 _listeners.push_back( owner->getName() ) ; 00145 _signal = false ; 00146 } 00147 } 00148 else 00149 { 00150 ok = ok && EventSignalEmitterUtil::loadParametersUtil( owner, node ) ; 00151 } 00152 ok = ok && ParametersAccessor::get( node, "Values", _values, owner ) ; 00153 ParametersAccessor::get( node, "Default", _default ) ; 00154 return ok ; 00155 }
virtual void OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil | ( | ExtensibleSimulatedObject * | owner, | |
int | index | |||
) | [inline, protected, virtual] |
The overwritten method.
Fire a signal or send an event according to the configuration.
Definition at line 163 of file OMKEventSignalEmitterUtil.h.
References OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::_default, OMK::EventSignalEmitterUtil::_eventId, OMK::EventSignalEmitterUtil::_listeners, OMK::EventSignalEmitterUtil::_signal, OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::_values, OMK::SimulatedObject::fireValuedSignal(), OMK_DEBUG_OMK_EVENT, OMTRACEID, and OMK::SimulatedObject::sendValuedEvent().
00164 { 00165 // if index out of range then it uses the _default 00166 index = ( index < 0 || (int)_values.size() < index ) ? _default : index ; 00167 if( _signal ) 00168 { // Fire the signal 00169 owner->fireValuedSignal< ModelType >( _eventId, ModelType( _values[ index ] ) ) ; 00170 } 00171 else 00172 { // Send the event for each listener 00173 for( std::vector< Name >::const_iterator i = _listeners.begin() ; 00174 i != _listeners.end() ; 00175 i++ ) 00176 { 00177 OMTRACEID( OMK_DEBUG_OMK_EVENT, "send value[ " << index << " ] \"" << _values[ index ] << "\" to \"" << *i << "\" through event \"" << _eventId << "\"" ) ; 00178 owner->sendValuedEvent< ModelType >( *i, _eventId, ModelType( _values[ index ] ) ) ; 00179 } 00180 } 00181 }
std::vector< T > OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::_values [protected] |
The value to send.
Definition at line 157 of file OMKEventSignalEmitterUtil.h.
Referenced by OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), and OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil().
int OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::_default [protected] |
Default index.
By default it is 0
Definition at line 160 of file OMKEventSignalEmitterUtil.h.
Referenced by OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), and OMK::MultiValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil().
Documentation generated on Mon Jun 9 11:46:03 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |