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

CSignalsControler.hpp

Go to the documentation of this file.
00001 
00002 #ifndef CSignalsControler_hpp
00003 #define CSignalsControler_hpp
00004 
00005 /*
00006  * Notas:
00007  *    - No es MT safe (no se puede usar de manera segura en mas de un thread)
00008  *    - En una aplicación MT si instalamos este manejador así de manera global
00009  *      Cada uno de los threads va a recibir la señal (al menos en Linux)
00010  *
00011  */
00012 
00013 #include <ace/Singleton.h>
00014 #include <ace/Signal.h>               // definición de NSIG (== numero de señal + grande + 1)
00015 #include "jic/signal/CSignalHandle.hpp"
00016 #include "jic/signal/CSignalsControlerBase.hpp"
00017 #include <ace/Synch.h>
00018 
00019 namespace SIGNAL
00020 {
00021   
00022 class CSignalsControler : public CSignalsControlerBase
00023 {
00024 public:
00025   
00026   virtual CSignalHandle *registerHandler(int sigNum,CSignalHandle *signalHandler);
00027   virtual CSignalHandle *removeHandler(int sigNum);
00028   
00029   friend class ACE_Unmanaged_Singleton<CSignalsControler, ACE_SYNCH_MUTEX>;  // Investigar porque
00030                                                                              // esto no tiene efecto (1)
00031   CSignalsControler();  // Si (1) tuviese efecto este constructor sería privado/protegido, lo cual sería
00032                         // lo suyo @
00033   
00034 protected:
00035   static CSignalHandle *m_signalHandlers[NSIG];
00036   static void dispatcher(int sigNum);
00037       
00038 private:  
00039   
00040   
00041   
00042 }; 
00043 
00044 typedef ACE_Unmanaged_Singleton<CSignalsControler, ACE_SYNCH_MUTEX> SignalsControler; // El objeto Singleton
00045 
00046   
00047 } /* SIGNAL */
00048 
00049 #endif

Generated on Wed Mar 5 21:31:47 2003 for JIC by doxygen1.3-rc3