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

connector.hpp

Go to the documentation of this file.
00001 
00002 //
00003 // Fichero            : connector.hpp
00004 // Autor              : 
00005 // Fecha creacion     : 08 / 11 / 2000
00006 // 
00007 // Descripcion        : Encapsulacion de ACE_Connector para facilitar el uso
00008 //                      y evitar tareas repetitivas.
00009 //
00010 //                     Solicita una conexion y lanza un 'servicio' atendiendola.
00011 //
00012 //                      Cada vez que se acepta una conexion, se llama al metodo
00013 //                      'open' del 'svcHnd'
00014 //
00015 // Notas
00016 //    - El tipo que parametriza la clase (representado en el template 
00017 //      como ServiceHandler) ha de ser una clase derivada de 'ACE_Svc_Handler'
00018 //
00020 
00021 #ifndef __CONNECTOR_H__
00022 #define __CONNECTOR_H__
00023 
00024 #include "jic/socket/sockets.hpp"
00025 #include "jic/log/trazas.hpp"
00026 
00027 #include "ace/Connector.h"
00028 #include "ace/SOCK_Connector.h"
00029 
00030 #include <string>
00031 
00032 namespace SOCKETS
00033 {
00034 
00035   EXCEPCION_DE(ExcSocket, ExcImposibleConectar);
00036 
00037   //============================================================================
00038   // Clase Template: Connector
00039   //============================================================================
00040 //  class Connector : public ACE_Connector<ServiceHandler, ACE_SOCK_Connector>
00041   template<class ServiceHandler>
00042   class Connector : public ACE_Connector<ServiceHandler, ACE_SOCK_CONNECTOR>
00043   {
00044   public:
00045     Connector(int puerto, const std::string & ip = "", 
00046               int nReintentos = 1, int intervaloReintentos = 1,
00047               ServiceHandler *svcHnd = new ServiceHandler);
00048     // throw (ExcImposibleConectar)
00049 
00050     virtual int make_svc_handler (ServiceHandler *&svcHnd);
00051 
00052   private:
00053     // Evito que se pueda llamar al constructor por defecto
00054     Connector() {};
00055     
00056     ServiceHandler * _svcHnd; // Service Hander
00057   };
00058 
00059 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
00060 #include "connector.cpp"
00061 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
00062 
00063 } // del namespace
00064 
00065 #endif
00066 
00067 
00068 
00069 

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