OMKSignalDispatcher.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 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

logo OpenMask

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

Generated with doxygen by Dimitri van Heesch ,   1997-2007