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

#include <Service.hpp>

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

Public Member Functions

 Service (const char *name, const bool isCritical)
 
bool isCritical () const
 
void attach (Server *server) noexcept(false)
 
comm::Serversend (Message &message) noexcept(false)
 
comm::Serversend (Message *message) noexcept(false)
 
int broadcast (Message &message)
 
int broadcast (Message *message)
 
std::string asString () const
 
xml::NodeasXML (xml::Node *parent) const
 
- Public Member Functions inherited from anna::comm::Delivery
virtual ~Delivery ()
 
const std::string & getName () const
 
void initialize () noexcept(false)
 
bool wasAvailable () const
 
const MillisecondgetRecoveryTime () const
 
void setRecoveryTime (const Millisecond &recoveryTime)
 
virtual bool isAvailable () const
 
Resourceapply () noexcept(false)
 
bool fault (const Resource *resource)
 
bool recover (const Resource *resource)
 
bool contains (const Resource *resource) const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
int size () const
 
const_iterator end () const
 
- Public Member Functions inherited from anna::Mutex
 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 Serverserver (iterator &ii)
 
static const Serverserver (const_iterator &ii)
 
- Static Public Member Functions inherited from anna::comm::Delivery
static Resourceresource (iterator &ii)
 
static const Resourceresource (const_iterator &ii)
 

Additional Inherited Members

- Public Types inherited from anna::comm::Delivery
typedef std::vector< Resource * > Resources
 
typedef Resources::iterator iterator
 
typedef Resources::const_iterator const_iterator
 
- Static Public Attributes inherited from anna::comm::Delivery
static const Millisecond DefaultRecoveryTime
 
- Protected Member Functions inherited from anna::comm::Delivery
 Delivery (const char *name)
 
void add (Resource *resource) noexcept(false)
 
virtual void do_initialize () noexcept(false)=0
 
virtual Resourcedo_apply () noexcept(false)=0
 
virtual bool do_fault (const Resource *resource)
 
virtual bool do_recover (const Resource *resource)
 
virtual bool do_contains (const Resource *resource) const
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Detailed Description

Clase que modela un servicio de reparto de carga. Cada servicio de reparto de carga esta asociado a un nmero indeterminado de procesos servidores (ver Server) entre los que puede seleccionar a la hora de enviar una peticin.

Para crear un nuevo servicio hay que invocar a Communicator::createService.

Constructor & Destructor Documentation

◆ Service()

anna::comm::Service::Service ( const char *  name,
const bool  isCritical 
)
inline

Constructor.

Parameters
nameNombre lógico del servicio de reparto de carga.
isCriticalIndica las caracteristicas del reparto de carga. Debe valor true si el reparto de carga a crear es crítico o false en otro caso.
36  :
37  Delivery(name),
38  a_isCritical(isCritical) {}
bool isCritical() const
Definition: Service.hpp:45
Delivery(const char *name)
Definition: Delivery.hpp:184

Member Function Documentation

◆ asString()

std::string anna::comm::Service::asString ( ) const
virtual

Devuelve una cadena con la información referente a esta maquina.

Returns
Una cadena con la información referente a esta maquina.

Reimplemented from anna::comm::Delivery.

◆ asXML()

xml::Node* anna::comm::Service::asXML ( xml::Node parent) const
virtual

Devuelve un nodo XML con la información referente a este objeto.

Parameters
parentNodo XML a partir del cual introducir la información.
Returns
Un nodo XML con la información referente a este objeto.

Reimplemented from anna::comm::Delivery.

◆ attach()

void anna::comm::Service::attach ( Server server)
noexcept

Conecta el servidor recibido como parámetro con este reparto.

Parameters
serverInstancia del servidor que vamos a registrar en este reparto.

◆ broadcast() [1/2]

int anna::comm::Service::broadcast ( Message message)

Envía el mensaje recibido como parámetro a todos los servidores incluidos en el servicio de reparto de carga recibido como parámetro. El bloque de datos recibido se codifica segun las reglas establecidas por el protocolo asociado.

Parameters
messageMensaje que vamos a enviar al todos los procesos que componente el servicio.
Returns
Numero de servidores a los que ha enviado el mensaje.

◆ broadcast() [2/2]

int anna::comm::Service::broadcast ( Message message)

Envía el mensaje recibido como parámetro a todos los servidores incluidos en el servicio de reparto de carga recibido como parámetro. El bloque de datos recibido se codifica segun las reglas establecidas por el protocolo asociado.

Parameters
messageMensaje que vamos a enviar al todos los procesos que componente el servicio.
Returns
Numero de servidores a los que ha enviado el mensaje.

◆ isCritical()

bool anna::comm::Service::isCritical ( ) const
inline

Devuelve la caracteristica de criticidad de este reparto.

Returns
La caracteristica de criticidad de este reparto.
45 { return a_isCritical; }
Here is the call graph for this function:

◆ send() [1/2]

comm::Server* anna::comm::Service::send ( Message message)
noexcept

Envía el mensaje recibido como parámetro. El bloque de datos recibido se codifica segun las reglas establecidas por el protocolo asociado en el contructor.

Parameters
messageMensaje que vamos codificar para enviar a la capa de transporte.
Returns
Servidor usado en el envio

◆ send() [2/2]

comm::Server* anna::comm::Service::send ( Message message)
noexcept

Envía el mensaje recibido como parámetro. El bloque de datos recibido se codifica segun las reglas establecidas por el protocolo asociado en el contructor.

Parameters
messageMensaje que vamos codificar para enviar a la capa de transporte.
Returns
Servidor usado en el envio

◆ server() [1/2]

static Server* anna::comm::Service::server ( iterator ii)
static

Devuelve el recurso remoto apuntado por el iterador recibido como parámetro.

Parameters
iiIterador usado para recorrer los recursos asociados a este reparto.
Returns
El recurso remoto apuntado por el iterador recibido como parámetro.

◆ server() [2/2]

static const Server* anna::comm::Service::server ( const_iterator ii)
static

Devuelve el recurso remoto apuntado por el iterador recibido como parámetro.

Parameters
iiIterador usado para recorrer los recursos asociados a este reparto.
Returns
El recurso remoto apuntado por el iterador recibido como parámetro.

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