ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Server.hpp>
Public Types | |
typedef std::vector< Service * > | Services |
typedef Services::iterator | iterator |
typedef Services::const_iterator | const_iterator |
Public Member Functions | |
virtual | ~Server () |
const Host * | getHost () const |
const ClientSocket * | getClientSocket () const |
int | getRemotePort () const |
bool | autoRecovery () const |
void | setAutoRecovery (bool autoRecovery=true) |
bool | isAvailable () const noexcept(false) |
TransportFactory * | getTransportFactory () |
const Millisecond & | getMaxConnectionDelay () const |
const Millisecond & | getMaxWriteDelay () const |
ReceiverFactory * | getReceiverFactory () |
void | setMaxConnectionDelay (const Millisecond &msMaxConnectionDelay) |
void | setMaxWriteDelay (const Millisecond &msMaxWriteDelay) |
void | setReceiverFactory (ReceiverFactory &receiverFactory) |
bool | getIgnoreIncomingMessages () const |
void | setIgnoreIncomingMessages (const bool ignoreIncomingMessages) |
void | attach (Service *service) noexcept(false) |
void | connect () noexcept(false) |
ClientSocket * | send (Message &message) noexcept(false) |
ClientSocket * | send (Message *message) noexcept(false) |
void | reset () noexcept(false) |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
std::string | asString () const |
xml::Node * | asXML (xml::Node *parent) const noexcept(false) |
![]() | |
virtual void | asAttribute (xml::Node *node) const noexcept(false) |
![]() | |
Resource (const std::string &name) | |
const std::string & | getName () const |
bool | isEnabled () const |
void | setTimeStamp (const Millisecond &timeStamp) |
const Millisecond & | getTimeStamp () const |
bool | operator== (const std::string &name) const |
bool | operator== (const Resource &other) const |
void | enable () noexcept(false) |
void | disable () noexcept(false) |
![]() | |
Mutex (const Mode::_v mode=Mode::Recursive) | |
virtual | ~Mutex () |
virtual void | lock () noexcept(false) |
virtual void | unlock () |
bool | trylock () noexcept(false) |
operator const pthread_mutex_t * () const | |
Static Public Member Functions | |
static Service * | service (iterator &ii) |
static const Service * | service (const_iterator &ii) |
static const char * | className () |
Protected Member Functions | |
Server (const std::string &name, const Host &host, const int remotePort, const bool autoRecovery, TransportFactory *transportFactory) | |
![]() | |
Resource (const std::string &name) | |
![]() | |
Safe () | |
Friends | |
class | Host |
class | ServerAllocator |
Clase que modela los procesos servidores. Cada maquina (ver Host) contiene un numero indeterminado de procesos servidores a los que puede enviar peticiones, bien directamente, o bien a traves del sistema de reparto de carga.
Para facilitar el diseo de soluciones HA cada servidor puede tener un numero indeterminado por donde recibe/envia peticiones, es por esto que cada servidor puede tener asociado un numero indeterminado de instancias de la clase RemoteConnection.
La instanciacion de procesos servidores se hara mediante la invocacion al metodo Host::createServer.
typedef Services::const_iterator anna::comm::Server::const_iterator |
typedef Services::iterator anna::comm::Server::iterator |
typedef std::vector<Service*> anna::comm::Server::Services |
|
virtual |
Destructor.
|
protected |
Constructor.
name | Nombre logico del servidor. |
host | Instancia de la maquina sobre la que esta atendiento peticiones. |
remotePort | Puerto sobre el que atiende peticiones. |
autoRecovery | Indica si en caso de caida se debe intenrar la recuperacion automatica de la conexion. |
transportFactory | Factoria de protocolos de transporte usada por los ClientSocket asociados a este proceso servidor. |
|
virtual |
Devuelve una cadena con la informacion referente a este proceso servidor.
Reimplemented from anna::Resource.
Devuelve un nodo XML con la informacion referente a este objeto.
parent | Nodo XML a partir del cual introducir la informacion. |
Reimplemented from anna::comm::Resource.
|
inlinenoexcept |
Asocia este servidor con un servicio de reparto.
service | Servicio de reparto al que vamos a relacionar este servicio. |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
noexcept |
Crea una conexion al servidor mediante algunas de las conexiones que deberian estar disponibles en la maquina asociada a este servidor.
|
inline |
|
inline |
|
inline |
Devuelve la instancia de ClientSocket asociada a este servidor. Puede ser NULL.
|
inline |
|
inline |
|
inline |
|
inline |
Devuelve el numero maximo de milisegundos que queda bloqueado el proceso/thread a la espera de escribir en un socket cuyo buffer de salida esta lleno.
|
inline |
|
inline |
|
inline |
|
virtualnoexcept |
Devuelve el estado activo o inactivo de este proceso servidor. Un proceso servidor estara activo si ha conseguido establecer el socket con el proceso remoto que representa por alguno de los sockets cliente establecidos.
Implements anna::Resource.
|
noexcept |
Libera el RemoteConnection asociado a esta instancia. Se invoca automaticamente cuando el extremo remoto cierra la conexion.
|
noexcept |
Envia el mensaje recibido como parametro. El bloque de datos recibido se codifica segun las reglas establecidas por el protocolo asociado en el contructor.
message | Mensaje vamos codificar para enviar a la capa de transporte. |
|
noexcept |
Envia el mensaje recibido como parametro. El bloque de datos recibido se codifica segun las reglas establecidas por el protocolo asociado en el contructor.
message | Mensaje vamos codificar para enviar a la capa de transporte. |
Devuelve la instancia del RemoteConnection sobre el que esta posicionado el iterador recibido como parametro.
ii | Iterador que debera estar comprendido entre begin y end. |
|
inlinestatic |
Devuelve la instancia del RemoteConnection sobre el que esta posicionado el iterador recibido como parametro.
ii | Iterador que debera estar comprendido entre begin y end. |
void anna::comm::Server::setAutoRecovery | ( | bool | autoRecovery = true | ) |
Configura el estado del indicador de recuperacin automatica. En caso de perder la conexin, por defecto, siempre se intentara reconectar con el servidor.
autoRecovery | Indicador de recuperacin automatica. |
|
inline |
|
inline |
Establece el numero maximo de milisegundos esperados para obtener la conexion al invocar al metodo connect.
msMaxConnectionDelay | Numero de milisegundos esperados para obtener conexion. |
|
inline |
Establece el numero maximo de milisegundos que queda bloqueado el proceso/thread a la espera de escribir en un socket cuyo buffer de salida esta lleno.
msMaxWriteDelay | Numero de milisegundos esperados en caso de que el buffer del socket se llene. |
void anna::comm::Server::setReceiverFactory | ( | ReceiverFactory & | receiverFactory | ) |
Establece la factoria de receptores usada por este socket.
receiverFactory | Factoria de receptores desde la que obtener el receptor asociado al comm::ClientSocket usado por este servidor. |
|
friend |
|
friend |