ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Delivery.hpp>
Public Types | |
typedef std::vector< Resource * > | Resources |
typedef Resources::iterator | iterator |
typedef Resources::const_iterator | const_iterator |
Public Member Functions | |
virtual | ~Delivery () |
const std::string & | getName () const |
void | initialize () noexcept(false) |
bool | wasAvailable () const |
const Millisecond & | getRecoveryTime () const |
void | setRecoveryTime (const Millisecond &recoveryTime) |
virtual bool | isAvailable () const |
Resource * | apply () 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 |
virtual std::string | asString () const |
virtual xml::Node * | asXML (xml::Node *parent) const |
![]() | |
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 Resource * | resource (iterator &ii) |
static const Resource * | resource (const_iterator &ii) |
Static Public Attributes | |
static const Millisecond | DefaultRecoveryTime |
Protected Member Functions | |
Delivery (const char *name) | |
void | add (Resource *resource) noexcept(false) |
virtual void | do_initialize () noexcept(false)=0 |
virtual Resource * | do_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 |
![]() | |
Safe () | |
Clase que modela un algoritmo de reparto de carga.
typedef Resources::const_iterator anna::comm::Delivery::const_iterator |
typedef Resources::iterator anna::comm::Delivery::iterator |
typedef std::vector<Resource*> anna::comm::Delivery::Resources |
|
inlineprotected |
Constructor.
name | Nombre logico de este reparto. |
|
protectednoexcept |
Conecta el recurso remoto recibido como parametro con este reparto.
resource | Instancia del recurso que vamos a registrar en este reparto. |
|
noexcept |
Devuelve la instancia del recurso remoto que debemos usar en esta ocasion.
|
virtual |
Devuelve una cadena con la informacion referente a este objeto.
Reimplemented in anna::comm::ByRangeDelivery< TKey, TDelivery, TSerializer >, anna::comm::Service, anna::comm::IndexedDelivery, and anna::comm::RoundRobinDelivery.
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::ByRangeDelivery< TKey, TDelivery, TSerializer >, anna::comm::Service, anna::comm::IndexedDelivery, and anna::comm::RoundRobinDelivery.
|
inline |
|
inline |
bool anna::comm::Delivery::contains | ( | const Resource * | resource | ) | const |
Indica si reparto contiene la referencia a un determinado recurso.
|
protectedpure virtualnoexcept |
Devuelve la instancia del recurso remoto que debemos que debemos usar en esta ocasion.
|
protectedvirtual |
Este metodo sirve a nuestra aplicacion para indicar que ha recuperado la conexion con el recurso.
resource | Recurso remoto con el que ha recuperado la conexion. |
|
protectedvirtual |
Este metodo sirve a nuestra aplicacion para indicar que no fue posible usar el recurso obtenido mediante apply.
resource | Recurso remoto que ha ocasionado el error. |
|
protectedpure virtualnoexcept |
Inicializa el reparto de recursos.
Implemented in anna::comm::ByRangeDelivery< TKey, TDelivery, TSerializer >, and anna::comm::RoundRobinDelivery.
|
protectedvirtual |
Este metodo sirve a nuestra aplicacion para indicar que ha recuperado la conexion con el recurso.
resource | Recurso remoto con el que ha recuperado la conexion. |
|
inline |
|
inline |
bool anna::comm::Delivery::fault | ( | const Resource * | resource | ) |
Este metodo sirve a nuestra aplicacion para notificar que el recurso ha dejado de estar disponible.
resource | Recurso remoto en el que hemos detectado el error. |
|
inline |
|
inline |
|
noexcept |
Inicializa el reparto de recursos.
|
virtual |
Comprueba la lista de recursos remotos para comprobar si hay alguno que este disponible (ver Resource::isAvailable) y no este deshabilitado (ver Resource::disable).
bool anna::comm::Delivery::recover | ( | const Resource * | resource | ) |
Este metodo sirve a nuestra aplicacion para que el recurso vuelve a estar disponible.
resource | Recurso remoto que hemos recuperado. |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
Devuelve el estado anterior que tenia esta instancia. El resultado de isAvailable puede ser distinto a este metodo ya que a diferencia de este se basa en el estado actual de los procesos asociados a este servicio, mientras que este metodo devuelve el estado en el que estaban la ultima vez que se hizo una comprobacion.
|
static |