ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Socket.hpp>
Classes | |
struct | Domain |
struct | Notify |
struct | Type |
Public Member Functions | |
virtual | ~Socket () |
int | getfd () const |
Type::_v | getType () const |
Domain::_v | getDomain () const |
int | getCategory () const |
bool | support (const char *transportClassName) const |
bool | isBound () const |
bool | isOpened () const |
virtual bool | isSecure () const |
const AccessPoint & | getLocalAccessPoint () const |
TransportFactory * | getTransportFactory () const |
ReceiverFactory * | getReceiverFactory () |
bool | setBlockingMode (const bool blockingMode) noexcept(false) |
bool | setReuseMode (const bool reuseMode) noexcept(false) |
void | setTransportFactory (TransportFactory *transportFactory) |
void | setReceiverFactory (ReceiverFactory &receiverFactory) |
void | setCategory (const int category) |
void | close () |
virtual void | bind () noexcept(false) |
virtual std::string | asString () const |
virtual xml::Node * | asXML (xml::Node *parent) const 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 | |
Protected Member Functions | |
Socket (const Domain::_v domain, const Type::_v type, TransportFactory *transportFactory=NULL) | |
Socket (const INetAddress &localAddress, const Type::_v type, TransportFactory *transportFactory=NULL) | |
Socket (const std::string &path, const Type::_v type, TransportFactory *transportFactory=NULL) | |
void | open () noexcept(false) |
virtual void | do_close () |
virtual int | do_bind (const struct sockaddr *, const int) noexcept(false) |
![]() | |
Safe () | |
Static Protected Member Functions | |
static const char * | asText (const Notify::_v v) |
Protected Attributes | |
const Domain::_v | a_domain |
const Type::_v | a_type |
int | a_fd |
AccessPoint | a_localAccessPoint |
bool | a_isBound |
TransportFactory * | a_transportFactory |
ReceiverFactory * | a_receiverFactory |
int | a_category |
Esta clase es la superclase de la que heredan todos los socket definidos en este paquete. Es usada tanto para crear socket de la parte cliente y de la parte servidora.
|
virtual |
Destructor.
|
protected |
Crea un servidor de socket liberado.
domain | Dominio del socket. |
type | Tipo de socket. |
transportFactory | Factoria de protocolos de transporte a usar por este sockets. Si se indica NULL ser usara el protocolo devuelto por anna::comm::Application::getDefaultTransportFactory. |
|
protected |
Crea un socket INET que sera asociado a la direccion y puerto locales indicados.
localAddress | Puede ser usado para limitar la direccion por la que atendiende peticiones un servidor de socket instalado en una maquina con mas de una direccion. |
type | Tipo de socket. |
transportFactory | Factoria de protocolos de transporte a usar por este sockets. Si se indica NULL ser usara el protocolo devuelto por anna::comm::Application::getDefaultTransportFactory. |
|
protected |
Crea un socket UNIX que sera asociado al archivo indicado como parametro.
path | Ruta del archivo que vamos a usar para transferir datos a traves de este socket. |
type | Tipo de socket. |
transportFactory | Factoria de protocolos de transporte a usar por este sockets. Si se indica NULL ser usara el protocolo devuelto por anna::comm::Application::getDefaultTransportFactory. |
|
virtual |
Devuelve una cadena con la informacion referente a este socket.
Reimplemented in anna::comm::ClientSocket, and anna::comm::ServerSocket.
|
staticprotected |
Devuelve la cadena correspondiente a la notificacion recibida como parametro.
v | Codigo de notificacion. |
Devuelve un nodo XML con la informacion referente a este objeto.
parent | Nodo XML a partir del cual introducir la informacion. |
Reimplemented in anna::comm::ClientSocket, and anna::comm::ServerSocket.
|
virtualnoexcept |
Intenta la asociar este socket con los parametros indicados en el constructor.
void anna::comm::Socket::close | ( | ) |
Cierra este socket. Si el socket no ha sido creado no tendra ningn efecto.
|
protectedvirtualnoexcept |
Asocia este Socket a la direccion recibida como parametro.
|
inlineprotectedvirtual |
Cierra este socket. Si el socket no ha sido creado no tendra ningn efecto.
Reimplemented in anna::comm::ClientSocket.
|
inline |
Devuelve la categoria asociada a este socket.
|
inline |
Devuelve el dominio de este socket.
|
inline |
Devuelve el descriptor de fichero asociado a este socket.
|
inline |
Devuelve la direccion local del socket.
|
inline |
Devuelve la factoria de receptores usada en este socket.
|
inline |
Devuelve la factoria de la capa de transporte usada en este socket.
|
inline |
Devuelve el tipo de socket.
|
inline |
Devuelve el estado de la conexion de este socket.
|
inline |
Devuelve el estado del socket.
|
inlinevirtual |
|
protectednoexcept |
Abre el socket.
|
noexcept |
Activa o desactiva el modo de bloqueo.
blockingMode | true si queremos activar el bloqueo o false en otro caso. |
|
inline |
Establece la categoria de este socket. La categoria es una concepto del ambito de la aplicacion que el nucleo de anna.comm no usa para nada. Unicamente hay que tener en cuenta que todos los anna::comm::ClientSocket creados a partir de un anna::comm::ServerSocket comparten su misma categoria.
category | Categoria asociada a este socket. |
|
inline |
Establece la factoria de receptores usada por este socket.
receiverFactory | Factoria de receptores desde la que obtener el receptor asociado a este Socket. |
|
noexcept |
Activa o desactiva el modo de reuso de la direccion.
reuseMode | true si queremos activar el reuso o false en otro caso. |
|
inline |
Establece la capa de transporte usada en este socket.
bool anna::comm::Socket::support | ( | const char * | transportClassName | ) | const |
Informa sobre si el socket es capaz de procesar un determinado protocolo de transporte.
transportClassName | Normalmente se pasara el resultado del metodo className de alguno de los protocolos definidos, por ejemplo, Transport::className o LiteTransport::className |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |