#include <OMKEventSignalEmitterUtil.h>
Inheritance diagram for OMK::ValuedEventSignalEmitterUtilT< T, ModelType >:
Public Member Functions | |
virtual | ~ValuedEventSignalEmitterUtilT () |
Protected Member Functions | |
ValuedEventSignalEmitterUtilT () | |
Constructor. | |
virtual bool | loadParametersUtil (ExtensibleSimulatedObject *owner, const ConfigurationParameterDescriptor *node) |
virtual void | sendUtil (ExtensibleSimulatedObject *owner) |
The overwritten method. | |
Protected Attributes | |
std::vector< T > | _values |
The value to send. | |
std::vector< T >::iterator | _current |
The current iterator. |
Definition at line 43 of file OMKEventSignalEmitterUtil.h.
OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::ValuedEventSignalEmitterUtilT | ( | ) | [inline, protected] |
Constructor.
It is protected, because it is only called by the sons.
Definition at line 49 of file OMKEventSignalEmitterUtil.h.
00050 : EventSignalEmitterUtil(), 00051 _current() 00052 { 00053 }
virtual OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::~ValuedEventSignalEmitterUtilT | ( | ) | [inline, virtual] |
virtual bool OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil | ( | ExtensibleSimulatedObject * | owner, | |
const ConfigurationParameterDescriptor * | node | |||
) | [inline, protected, virtual] |
Reimplemented from OMK::EventSignalEmitterUtil.
Definition at line 58 of file OMKEventSignalEmitterUtil.h.
References OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::_current, OMK::EventSignalEmitterUtil::_eventId, OMK::EventSignalEmitterUtil::_listeners, OMK::EventSignalEmitterUtil::_signal, OMK::ValuedEventSignalEmitterUtilT< 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::TriggerEmitterExtensionT< T, ModelType >::loadExtensionParameters(), and OMK::Inp::KeyEmitterExtensionT< T, ModelType >::loadExtensionParameters().
00060 { 00061 bool ok = true ; 00062 if( ParametersAccessor::get( node, "AttributeId", _eventId, owner ) ) 00063 { 00064 IAttribute * attribute = owner->getAttribute( _eventId ) ; 00065 ok = ok && attribute ; 00066 if( !attribute ) OMERROR( "Attribute " << _eventId << " cannot be found" ) ; 00067 if( ok ) 00068 { 00069 attribute->activateSetByEventOf() ; 00070 _eventId = EventId::getCurrentValueEventId( _eventId.getCString() ) ; 00071 _listeners.push_back( owner->getName() ) ; 00072 _signal = false ; 00073 } 00074 } 00075 else 00076 { 00077 ok = ok && EventSignalEmitterUtil::loadParametersUtil( owner, node ) ; 00078 } 00079 ok = ok && ParametersAccessor::get( node, "Values", _values, owner ) ; 00080 _current = _values.begin() ; 00081 return ok ; 00082 }
virtual void OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil | ( | ExtensibleSimulatedObject * | owner | ) | [inline, protected, virtual] |
The overwritten method.
Fire a signal or send an event according to the configuration.
Reimplemented from OMK::EventSignalEmitterUtil.
Definition at line 89 of file OMKEventSignalEmitterUtil.h.
References OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::_current, OMK::EventSignalEmitterUtil::_eventId, OMK::EventSignalEmitterUtil::_listeners, OMK::EventSignalEmitterUtil::_signal, OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::_values, OMK::SimulatedObject::fireValuedSignal(), OMK_DEBUG_OMK_EVENT, OMTRACEID, and OMK::SimulatedObject::sendValuedEvent().
Referenced by OMK::Inp::KeyEmitterExtensionT< T, ModelType >::action().
00090 { 00091 if( _signal ) 00092 { // Fire the signal 00093 owner->fireValuedSignal< ModelType >( _eventId, ModelType( *_current ) ) ; 00094 } 00095 else 00096 { // Send the event for each listener 00097 for( std::vector< Name >::const_iterator i = _listeners.begin() ; 00098 i != _listeners.end() ; 00099 i++ ) 00100 { 00101 OMTRACEID( OMK_DEBUG_OMK_EVENT, "send value \"" << *_current << "\" to \"" << *i << "\" through event \"" << _eventId << "\"" ) ; 00102 owner->sendValuedEvent< ModelType >( *i, _eventId, ModelType( *_current ) ) ; 00103 } 00104 } 00105 // Next one 00106 _current++ ; 00107 if( _current == _values.end() ) _current = _values.begin() ; 00108 }
std::vector< T > OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::_values [protected] |
The value to send.
Definition at line 84 of file OMKEventSignalEmitterUtil.h.
Referenced by OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), and OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil().
std::vector< T >::iterator OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::_current [protected] |
The current iterator.
Definition at line 86 of file OMKEventSignalEmitterUtil.h.
Referenced by OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::loadParametersUtil(), and OMK::ValuedEventSignalEmitterUtilT< T, ModelType >::sendUtil().
Documentation generated on Mon Jun 9 11:46:03 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |