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

#include <IndexedDelivery.hpp>

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

Classes

struct  Mode
 

Public Member Functions

 IndexedDelivery (const char *name, const bool isCritical, const Mode::_v mode)
 
void prepare (const int key) noexcept(false)
 
std::string asString () const
 
xml::NodeasXML (xml::Node *parent) const
 
- Public Member Functions inherited from anna::comm::Service
 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 const char * className ()
 
- Static Public Member Functions inherited from anna::comm::Service
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 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

Servicio de reparto de peticiones. Selecciona el destino de la proxima peticion en base una clave numerica de forma que el recurso usado sera el que ocupe la posicicion i-esima. Donde i = key % N, donde key es la clave recibida y N es el numero total de recursos definidos en este reparto.

Constructor & Destructor Documentation

◆ IndexedDelivery()

anna::comm::IndexedDelivery::IndexedDelivery ( const char *  name,
const bool  isCritical,
const Mode::_v  mode 
)
inline

Constructor.

Parameters
nameNombre logico del servicio de reparto de carga.
isCriticalIndica las caracteristicas del reparto de carga. Debe valor true si el reparto de carga a crear es critico o false en otro caso.
modeModo de actuar en caso de que el recurso seleccionado no este disponible.
46  :
47  comm::Service(name, isCritical),
48  a_mode(mode),
49  a_iikey(0)
50  {;}
bool isCritical() const
Definition: Service.hpp:45

Member Function Documentation

◆ asString()

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

Devuelve una cadena con la informacion referente a este objeto.

Returns
Una cadena con la informacion referente a este objeto.

Reimplemented from anna::comm::Delivery.

◆ asXML()

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

Devuelve un nodo XML con la informacion referente a este objeto.

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

Reimplemented from anna::comm::Delivery.

◆ className()

static const char* anna::comm::IndexedDelivery::className ( )
inlinestatic

Metodo que devuelve el nombre completo de este selector de recursos. Para evitar ambiguedades este nombre incluye la lista completa de namespaces a los que pertenece la clase.

Returns
Una cadena con el nombre de este selector.
69 { return "anna::comm::IndexedDelivery"; }

◆ prepare()

void anna::comm::IndexedDelivery::prepare ( const int  key)
noexcept

Establece la clave que se usara para decidir el comm::Server al que se va a enviar el mensaje.

Parameters
keyClave usada para calcular el servidor destino.
Warning
Este metodo debe invocarse siempre antes de enviar un mensaje.

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