1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_comm_ServerAllocator_hpp
10 #define anna_comm_ServerAllocator_hpp
19 class TransportFactory;
23 Instanciador de anna::comm::Server se usa para poder instanciar distintos tipos
24 de anna::comm::Server desde la clase anna::comm::Host.
26 \see Host::createServer
29 class ServerAllocator {
32 Constructor. Recoge los parametros con los que crear el servidor.
33 \param name Nombre logico del servidor.
34 \param host Instancia de la maquina sobre la que esta atendiento peticiones.
35 \param remotePort Puerto sobre el que atiende peticiones.
36 \param autoRecovery Indica si en caso de caida se debe intentar la recuperacion
37 automatica de la conexion.
38 \param transportFactory Factoria de protocolos de transporte usada por los ClientSocket asociados a este
40 \param ignoreIncomingMessages Indicador de ignorar mensajes entrantes.
42 ServerAllocator(const std::string& name, const Host& host, const int remotePort, const bool autoRecovery, TransportFactory* transportFactory = NULL, const bool ignoreIncomingMessages = false) :
45 a_remotePort(remotePort),
46 a_autoRecovery(autoRecovery),
47 a_transportFactory(transportFactory),
48 a_ignoreIncomingMessages(ignoreIncomingMessages)
53 \param other Instanciador del que copiar.
55 ServerAllocator(const ServerAllocator& other) :
58 a_remotePort(other.a_remotePort),
59 a_autoRecovery(other.a_autoRecovery),
60 a_transportFactory(other.a_transportFactory),
61 a_ignoreIncomingMessages(other.a_ignoreIncomingMessages)
67 virtual ~ServerAllocator() {;}
70 Devuelve el nombre logico del servidor.
71 \return el nombre logico del servidor.
73 const std::string& getName() const throw() { return a_name; }
76 Devuelve el puerto sobre el que atiende peticiones.
77 \return el puerto sobre el que atiende peticiones.
79 int getRemotePort() const throw() { return a_remotePort; }
82 Indica si se ha indicado que en caso de caida se debe intentar la recuperacion
83 automatica de la conexion.
84 \return \em true si se ha indicado que en caso de caida se debe intentar la recuperacion
85 automatica de la conexion o \em false en caso contrario.
87 bool autoRecovery() const throw() { return a_autoRecovery; }
90 * Devuelve \em true si el indicador que ignora los mensajes entrantes está activo, o \em false en otro caso.
91 * \return \em true si el indicador que ignora los mensajes entrantes está activo, o \em false en otro caso.
93 bool getIgnoreIncomingMessages() const throw() { return a_ignoreIncomingMessages; }
96 Crea una instancia particular de anna::comm::Server usando los parametros establecidos
98 \return una instancia particular de anna::comm::Server.
100 virtual Server* apply() const throw();
103 const std::string a_name;
105 const int a_remotePort;
107 TransportFactory* a_transportFactory;
108 const bool a_ignoreIncomingMessages;