ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
anna::comm::Network Class Reference

#include <Network.hpp>

Inheritance diagram for anna::comm::Network:
Inheritance graph
[legend]
Collaboration diagram for anna::comm::Network:
Collaboration graph
[legend]

Classes

struct  DoConnect
 
struct  Port
 

Public Types

typedef std::vector< Host * > host_container
 
typedef host_container::iterator host_iterator
 
typedef host_container::const_iterator const_host_iterator
 
typedef std::vector< Device * > device_container
 
typedef device_container::iterator device_iterator
 
typedef device_container::const_iterator const_device_iterator
 

Public Member Functions

Devicefind (const in_addr_t &address)
 
const_device_iterator device_begin () const
 
const_device_iterator device_end () const
 
device_iterator device_begin ()
 
device_iterator device_end ()
 
Hostfind_host (const char *name)
 
Hostfind_host (const std::string &name)
 
Hostresolve (const char *hostname) noexcept(false)
 
Hostresolve (const std::string &hostname) noexcept(false)
 
const_host_iterator host_begin () const
 
const_host_iterator host_end () const
 
host_iterator host_begin ()
 
host_iterator host_end ()
 
ServercreateServer (const char *ip, const int remotePort, const bool autoRecovery, TransportFactory *transportFactory=NULL, const Port::_v mode=Port::Multiple, const DoConnect::_v doConnect=DoConnect::Yes) noexcept(false)
 
ServercreateServer (const char *ip, const int remotePort, const bool autoRecovery, ReceiverFactory &receiverFactory, TransportFactory *transportFactory=NULL, const Port::_v mode=Port::Multiple, const DoConnect::_v doConnect=DoConnect::Yes) noexcept(false)
 
ServerresolveServer (const char *hostname, const int remotePort, const bool autoRecovery, TransportFactory *transportFactory=NULL, const Port::_v mode=Port::Multiple, const DoConnect::_v doConnect=DoConnect::Yes) noexcept(false)
 
ServerresolveServer (const char *hostname, const int remotePort, const bool autoRecovery, ReceiverFactory &receiverFactory, TransportFactory *transportFactory=NULL, const Port::_v mode=Port::Multiple, const DoConnect::_v doConnect=DoConnect::Yes) noexcept(false)
 
INetAddress getINetAddress (const char *ip, const int port) noexcept(false)
 
INetAddress getINetAddress (const std::string &ip, const int port) noexcept(false)
 
xml::NodeasXML (xml::Node *parent) const
 

Static Public Member Functions

static const Devicedevice (const_device_iterator ii)
 
static Devicedevice (device_iterator ii)
 
static const Hosthost (const_host_iterator ii)
 
static Hosthost (host_iterator ii)
 
- Static Public Member Functions inherited from anna::Singleton< Network >
static Network & instantiate ()
 
static void release ()
 

Friends

class Singleton< Network >
 

Detailed Description

Representacion logica de la estructura de red donde se ejecuta nuestra aplicacion.

Member Typedef Documentation

◆ const_device_iterator

typedef device_container::const_iterator anna::comm::Network::const_device_iterator

Definicion para el iterador de dispositivos de red

◆ const_host_iterator

typedef host_container::const_iterator anna::comm::Network::const_host_iterator

Definicion para el iterador de maquinas

◆ device_container

Definicion para gestionar los dispositivos de red

◆ device_iterator

typedef device_container::iterator anna::comm::Network::device_iterator

Definicion para el iterador de dispositivos de red

◆ host_container

Definicion para gestionar las maquinas

◆ host_iterator

typedef host_container::iterator anna::comm::Network::host_iterator

Definicion para el iterador de maquinas

Member Function Documentation

◆ asXML()

xml::Node* anna::comm::Network::asXML ( xml::Node parent) const

Devuelve una cadena con la informacin referente a esta instancia.

Parameters
parentNodo XML del que dependende la informacion.
Returns
Una cadena con la informacin referente a esta instancia.

◆ createServer() [1/2]

Server* anna::comm::Network::createServer ( const char *  ip,
const int  remotePort,
const bool  autoRecovery,
TransportFactory transportFactory = NULL,
const Port::_v  mode = Port::Multiple,
const DoConnect::_v  doConnect = DoConnect::Yes 
)
noexcept

Crea la instancia de un anna::comm::Server disponible para conectar con la IP y puerto indicados.

Parameters
ipDireccion IP en la que escucha el proceso con el que queremos conectar.
remotePortPuerto remoto en el que atiendo peticiones el proceso con el que conectar.
autoRecoveryIndica si en caso de caida se debe intentar la recuperacion automatica de la conexion.
transportFactoryFactoria de protocolos de transporte usada por los ClientSocket asociados a este proceso servidor.
modeModo de actuar en caso de que ya haya definida una conexión previa contra una misma IP:port
doConnectRealiza o ignora, la conexion del recurso creado.
Returns
La instancia de comm::Server asociado al IP y puerto recibido.
Warning
Con modo de puerto unico, si ya existe un proceso definido sobre esa misma IP:port retorna la misma instancia.

◆ createServer() [2/2]

Server* anna::comm::Network::createServer ( const char *  ip,
const int  remotePort,
const bool  autoRecovery,
ReceiverFactory receiverFactory,
TransportFactory transportFactory = NULL,
const Port::_v  mode = Port::Multiple,
const DoConnect::_v  doConnect = DoConnect::Yes 
)
noexcept

Crea la instancia de un anna::comm::Server disponible para conectar con la IP y puerto indicados.

Parameters
ipDireccion IP en la que escucha el proceso con el que queremos conectar.
remotePortPuerto remoto en el que atiendo peticiones el proceso con el que conectar.
autoRecoveryIndica si en caso de caida se debe intentar la recuperacion automatica de la conexion.
receiverFactoryFactoria de receptores usada por el comm::ClientSocket usado por el comm::Server a crear.
transportFactoryFactoria de protocolos de transporte usada por los ClientSocket asociados a este proceso servidor.
modeModo de actuar en caso de que ya haya definida una conexión previa contra una misma IP:port
doConnectRealiza o ignora, la conexion del recurso creado.
Returns
La instancia de comm::Server asociado al IP y puerto recibido.
Warning
Con modo de puerto unico, si ya existe un proceso definido sobre esa misma IP:port retorna la misma instancia.

◆ device() [1/2]

static const Device* anna::comm::Network::device ( const_device_iterator  ii)
inlinestatic

Devuelve un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.

Parameters
iiIterador que estamos recorriendo.
Returns
un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.
86 { return *ii; }

◆ device() [2/2]

static Device* anna::comm::Network::device ( device_iterator  ii)
inlinestatic

Devuelve un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.

Parameters
iiIterador que estamos recorriendo.
Returns
un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.
107 { return *ii; }

◆ device_begin() [1/2]

const_device_iterator anna::comm::Network::device_begin ( ) const
inline

Devuelve un iterador al comienzo de la lista de dispositivos de red.

Returns
un iterador al comienzo de la lista de dispositivos de red.
71 { return a_devices.begin(); }

◆ device_begin() [2/2]

device_iterator anna::comm::Network::device_begin ( )
inline

Devuelve un iterador al comienzo de la lista de dispositivos de red.

Returns
un iterador al comienzo de la lista de dispositivos de red.
92 { return a_devices.begin(); }

◆ device_end() [1/2]

const_device_iterator anna::comm::Network::device_end ( ) const
inline

Devuelve un iterador al final de la lista de dispositivos de red.

Returns
un iterador al final de la lista de dispositivos de red.
77 { return a_devices.end(); }

◆ device_end() [2/2]

device_iterator anna::comm::Network::device_end ( )
inline

Devuelve un iterador al final de la lista de dispositivos de red.

Returns
un iterador al final de la lista de dispositivos de red.
98 { return a_devices.end(); }

◆ find()

Device* anna::comm::Network::find ( const in_addr_t &  address)

Devuelve un puntero al dispositivo que coincide con la direccion IP recibida como parametro. Si no encuentra ninguna coincidencia se creara automaticamente.

Parameters
addressDireccion de la maquina buscada.
Returns
La instancia del dispositivo que coincide con la direccion IP recibida como parametro.

◆ find_host() [1/2]

Host* anna::comm::Network::find_host ( const char *  name)

Realiza una busqueda secuencial entre todas las maquinas y devuelve la instancia de la maquina asociada al nombre recibido como parametro. Si no existia una instancia registrada con este nombre se creara.

Parameters
nameNombre logico de la maquina.
Returns
La instancia de la maquina asociada al nombre recibido.

◆ find_host() [2/2]

Host* anna::comm::Network::find_host ( const std::string &  name)
inline

Realiza una busqueda secuencial entre todas las maquinas y devuelve la instancia de la maquina asociada al nombre recibido como parametro. Si no existia una instancia registrada con este nombre se creara.

Parameters
nameNombre logico de la maquina.
Returns
La instancia de la maquina asociada al nombre recibido.
129 { return find_host(name.c_str()); }
Host * find_host(const char *name)
Here is the call graph for this function:

◆ getINetAddress() [1/2]

INetAddress anna::comm::Network::getINetAddress ( const char *  ip,
const int  port 
)
noexcept

Obtiene la INetAddress correspondiente a la IP y puerto recibidos como parámetro.

Parameters
ipDirección IP en formato a.b.c.d
portPuerto de la dirección de red.
Returns
la INetAddress correspondiente a la IP y puerto recibidos como parámetro.

◆ getINetAddress() [2/2]

INetAddress anna::comm::Network::getINetAddress ( const std::string &  ip,
const int  port 
)
noexcept

Obtiene la INetAddress correspondiente a la IP y puerto recibidos como parámetro.

Parameters
ipDirección IP en formato a.b.c.d
portPuerto de la dirección de red.
Returns
la INetAddress correspondiente a la IP y puerto recibidos como parámetro.

◆ host() [1/2]

static const Host* anna::comm::Network::host ( const_host_iterator  ii)
inlinestatic

Devuelve un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.

Parameters
iiIterador que estamos recorriendo.
Returns
un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.
184 { return *ii; }

◆ host() [2/2]

static Host* anna::comm::Network::host ( host_iterator  ii)
inlinestatic

Devuelve un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.

Parameters
iiIterador que estamos recorriendo.
Returns
un puntero al elemento sobre el que se encuentra el iterador pasado como parametro.
205 { return *ii; }

◆ host_begin() [1/2]

const_host_iterator anna::comm::Network::host_begin ( ) const
inline

Devuelve un iterador al comienzo de la lista de maquinas no modificables.

Returns
Un iterador al comienzo de la lista de maquinas no modificables.
169 { return a_hosts.begin(); }

◆ host_begin() [2/2]

host_iterator anna::comm::Network::host_begin ( )
inline

Devuelve un iterador al comienzo de la lista de maquinas no modificables.

Returns
Un iterador al comienzo de la lista de maquinas no modificables.
190 { return a_hosts.begin(); }

◆ host_end() [1/2]

const_host_iterator anna::comm::Network::host_end ( ) const
inline

Devuelve un iterador al final de la lista de maquinas no modificables.

Returns
Un iterador al final de la lista de maquinas no modificables.
175 { return a_hosts.end(); }

◆ host_end() [2/2]

host_iterator anna::comm::Network::host_end ( )
inline

Devuelve un iterador al final de la lista de maquinas no modificables.

Returns
Un iterador al final de la lista de maquinas no modificables.
196 { return a_hosts.end(); }

◆ resolve() [1/2]

Host* anna::comm::Network::resolve ( const char *  hostname)
noexcept

Resuelve el nombre de la maquina recibido como parametro y devuelve la instancia del Host asociado a ese nombre. Si el nombre de host ho ha sido definido previamente mediante el uso de los metodos find devolvera una instancia de Host que tiene asignada todas las direcciones IP's retornadas por el sistema.

Parameters
hostnameNombre logico del servidor que sera usado para resolver. Podria ser una cadena de la forma www.gopher.net
Returns
Si el nombre de host ho ha sido definido previamente mediante el uso de los metodos find_host devolvera una instancia de Host que tiene asignada todas las direcciones IP's retornadas por el sistema
See also
man gethostbyname.

◆ resolve() [2/2]

Host* anna::comm::Network::resolve ( const std::string &  hostname)
inlinenoexcept

Resuelve el nombre de la maquina recibido como parametro y devuelve la instancia del Host asociado a ese nombre. Si el nombre de host ho ha sido definido previamente mediante el uso de los metodos find devolvera una instancia de Host que tiene asignada todas las direcciones IP's retornadas por el sistema.

Parameters
hostnameNombre logico del servidor que sera usado para resolver. Podria ser una cadena de la forma www.gopher.net
Returns
Si el nombre de host ho ha sido definido previamente mediante el uso de los metodos find_host devolvera una instancia de Host que tiene asignada todas las direcciones IP's retornadas por el sistema
See also
man gethostbyname.
163 { return resolve(hostname.c_str()); }
Host * resolve(const char *hostname) noexcept(false)
Here is the call graph for this function:

◆ resolveServer() [1/2]

Server* anna::comm::Network::resolveServer ( const char *  hostname,
const int  remotePort,
const bool  autoRecovery,
TransportFactory transportFactory = NULL,
const Port::_v  mode = Port::Multiple,
const DoConnect::_v  doConnect = DoConnect::Yes 
)
noexcept

Devuelve la instancia del anna::comm::Server asociado a la IP y puerto recibidos.

Parameters
ipDireccion IP en la que escucha el proceso con el que queremos conectar.
remotePortPuerto remoto en el que atiendo peticiones el proceso con el que conectar.
Returns
La instancia de comm::Server asociado al IP y puerto recibido.
Warning
El anna::comm::Server devuelto puede ser NULL. Crea la instancia de un anna::comm::Server disponible para conectar con la IP y puerto indicados.
Parameters
hostnameNombre logico del servidor que sera usado para resolver. Podria ser una cadena de la forma www.gopher.net
remotePortPuerto remoto en el que atiendo peticiones el proceso con el que conectar.
autoRecoveryIndica si en caso de caida se debe intentar la recuperacion automatica de la conexion.
transportFactoryFactoria de protocolos de transporte usada por los ClientSocket asociados a este proceso servidor.
modeModo de actuar en caso de que ya haya definida una conexión previa contra una misma IP:port
doConnectRealiza o ignora, la conexion del recurso creado.
Returns
La instancia de comm::Server asociado al IP y puerto recibido.
Warning
Con modo de puerto unico, si ya existe un proceso definido sobre esa misma IP:port retorna la misma instancia.

◆ resolveServer() [2/2]

Server* anna::comm::Network::resolveServer ( const char *  hostname,
const int  remotePort,
const bool  autoRecovery,
ReceiverFactory receiverFactory,
TransportFactory transportFactory = NULL,
const Port::_v  mode = Port::Multiple,
const DoConnect::_v  doConnect = DoConnect::Yes 
)
noexcept

Crea la instancia de un anna::comm::Server disponible para conectar con la IP y puerto indicados.

Parameters
hostnameNombre logico del servidor que sera usado para resolver. Podria ser una cadena de la forma www.gopher.net
remotePortPuerto remoto en el que atiendo peticiones el proceso con el que conectar.
autoRecoveryIndica si en caso de caida se debe intentar la recuperacion automatica de la conexion.
receiverFactoryFactoria de receptores usada por el comm::ClientSocket usado por el comm::Server a crear.
transportFactoryFactoria de protocolos de transporte usada por los ClientSocket asociados a este proceso servidor.
modeModo de actuar en caso de que ya haya definida una conexión previa contra una misma IP:port
doConnectRealiza o ignora, la conexion del recurso creado.
Returns
La instancia de comm::Server asociado al IP y puerto recibido.
Warning
Con modo de puerto unico, si ya existe un proceso definido sobre esa misma IP:port retorna la misma instancia.

Friends And Related Function Documentation

◆ Singleton< Network >

friend class Singleton< Network >
friend

The documentation for this class was generated from the following file: