OMKEventListenerCallBack.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 OMKEventListenerCallBackHEADER
00019 #define OMKEventListenerCallBackHEADER
00020 
00021 #include "OMKEventListener.h"
00022 #include "OMKSimulatedObject.h"
00023 
00024 namespace OMK
00025 {
00091 template< class CallerClass >
00092 class EventListenerCallBack :
00093   public EventListener
00094 {
00095 public:
00118   typedef bool (CallerClass::*CallBackFct)( Event * event ) ;
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131   EventListenerCallBack( CallerClass & owner, 
00132                             CallBackFct callBackFct, 
00133                             const EventIdentifier& eventId )
00134   : EventListener( owner ), _callerInstance( &owner ), _callBackFct( callBackFct ), _eventId( eventId )
00135   {
00136     // The owner instance and the callback method must be set
00137     OMASSERTM( _callerInstance && _callBackFct, "The owner instance and the callback method must be set" ); 
00138     _owner.addEventListener( *this ) ;     
00139   }
00152   EventListenerCallBack( SimulatedObject & owner, 
00153                             CallerClass * callerInstance, CallBackFct callBackFct, 
00154                             const EventIdentifier& eventId )
00155   : EventListener( owner ), _callerInstance( callerInstance ), _callBackFct( callBackFct ), _eventId( eventId )
00156   { 
00157     // The owner instance and the callback method must be set
00158     OMASSERTM( _callerInstance && _callBackFct, "The owner instance and the callback method must be set" ); 
00159     _owner.addEventListener( *this ) ;     
00160   }
00162   virtual ~EventListenerCallBack() {}
00164 
00165 protected:
00167 
00168 
00169 
00170 
00171 
00172   virtual bool processEvent( Event *event ) 
00173   {
00174     return (_callerInstance->*_callBackFct)( event ) ;
00175   }
00177   virtual void registerEvents() 
00178   {
00179     _owner.registerEventListenerForEvent( *this, _eventId ) ;
00180   }
00182   
00183 protected:
00185 
00186 
00187 
00188   CallerClass* _callerInstance ;
00190   CallBackFct _callBackFct ;
00192   EventIdentifier _eventId ;
00194 };
00195 
00196 } // namespace OMK
00197 
00198 #endif //defined OMKEventListenerCallBackHEADER

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007