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 OMKSignalDispatcherHEADER 00019 #define OMKSignalDispatcherHEADER 00020 00021 #include <vector> 00022 #include <map> 00023 #include "OMKEventIdentifier.h" 00024 #ifdef _OMK_MUTEX_ 00025 # include "OMKMutexLock.h" 00026 #endif 00027 00028 namespace OMK 00029 { 00030 class Event ; 00031 class Controller ; 00032 00038 class OMK_API SignalDispatcher 00039 { 00040 public: 00043 SignalDispatcher(Controller & controller) ; 00044 00046 virtual ~SignalDispatcher() ; 00047 00052 virtual void sendEventsForSignal( Event & event , const EventIdentifier & sigId ) ; 00053 00059 virtual bool registerForSignal ( const EventIdentifier & sigId, 00060 const Name & registrant, 00061 const EventIdentifier & eventId) ; 00062 00067 virtual bool cancelRegistrationForSignal ( const EventIdentifier & sigId, 00068 const Name & registrant ) ; 00069 protected: 00071 Controller & _controler ; 00072 00074 typedef std::vector <std::pair<Name,EventIdentifier> > _VectorType ; 00075 00077 typedef std::map <EventIdentifier, _VectorType * > _TableType ; 00078 00080 _TableType _tableOfRegistredObjects; 00081 00082 #ifdef _OMK_MUTEX_ 00083 00084 OMKMutexLock _mutexForRegistredObjectsTable ; 00085 #endif 00086 }; 00087 00088 } //namespace OMK 00089 #endif
Documentation generated on Mon Jun 9 11:45:57 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |