Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

PsChangedControlParameterEventListener.h

Go to the documentation of this file.
00001 /*
00002  * This file is part of openMask © INRIA, CNRS, Universite de Rennes 1 1993-2002, thereinafter the Software
00003  * 
00004  * The Software has been developped within the Siames Project. 
00005  * INRIA, the University of Rennes 1 and CNRS jointly hold intellectual property rights
00006  * 
00007  * The Software has been registered with the Agence pour la Protection des
00008  * Programmes (APP) under registration number IDDN.FR.001.510008.00.S.P.2001.000.41200
00009  *
00010  * This file may be distributed under the terms of the Q Public License
00011  * version 1.0 as defined by Trolltech AS of Norway and appearing in the file
00012  * LICENSE.QPL included in the packaging of this file.
00013  *
00014  * Licensees holding valid specific licenses issued by INRIA, CNRS or Université de Rennes 1 
00015  * for the software may use this file in accordance with that specific license 
00016  *
00017  */
00018 #ifndef PsChangedControlParameterEventListenerHEADER
00019 #define PsChangedControlParameterEventListenerHEADER
00020 
00021 #include "PsEventListener.h"
00022 
00029 template <typename Type>
00030 class PsChangedControlParameterEventListener : public PsEventListener
00031 {
00032 public:
00037    PsChangedControlParameterEventListener(PsSimulatedObject & owner ,
00038                                           PsControlParameter<Type> & associatedControlParameter);
00039 
00041    virtual ~PsChangedControlParameterEventListener() ;
00042 
00044    virtual void registerEvents() ;
00045 
00047    virtual bool processEvent (PsEvent * event) ;
00048 
00049 protected:
00051    virtual void setControlParameter ( const Type & newValue);
00052 
00054    PsControlParameter<Type> & _associatedControlParameter ;
00055 
00056 };
00057 
00058 
00059 
00060 template <typename Type>
00061 PsChangedControlParameterEventListener<Type>::
00062 PsChangedControlParameterEventListener(PsSimulatedObject & owner,
00063                                        PsControlParameter<Type> & associatedControlParameter) :
00064    PsEventListener ( owner ),
00065    _associatedControlParameter( associatedControlParameter )
00066 {
00067 
00068 }
00069 
00070 
00071 
00072 template <typename Type>
00073 PsChangedControlParameterEventListener<Type>::
00074 ~PsChangedControlParameterEventListener()
00075 {
00076 
00077 }
00078 
00079 
00080 template <typename Type>
00081 void PsChangedControlParameterEventListener<Type>::registerEvents() 
00082 {
00083    _owner.registerEventListenerForEvent ( *this, _associatedControlParameter.getAssociatedEventId() ) ;
00084 }
00085 
00086 
00087 template <typename Type>
00088 bool PsChangedControlParameterEventListener<Type>::processEvent (PsEvent * event) 
00089 {
00090    PsValuedEvent<Type > * realEvent = dynamic_cast<PsValuedEvent<Type > *>(event) ;
00091    assert ( realEvent != NULL );
00092    setControlParameter ( realEvent->value ) ;
00093    return true ;
00094 }
00095 
00096 
00097 template <typename Type>
00098 void PsChangedControlParameterEventListener<Type>::setControlParameter (const Type & value)
00099 {
00100    _associatedControlParameter.realSet ( value ) ;
00101 
00102 }
00103 
00104 #endif

logo OpenMask

Documentation generated on Mon Nov 25 15:24:59 2002

Generated with doxygen 1.2.12 by Dimitri van Heesch ,   1997-2001