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

#include <RoundRobinDelivery.hpp>

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

Public Member Functions

 RoundRobinDelivery (const char *name, const bool isCritical)
 
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)
 

Protected Member Functions

void do_initialize () noexcept(false)
 
- 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 ()
 

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
 

Detailed Description

Servicio de reparto de carga mediante un algoritmo RoundRobin, es decir, cada uno de los mensajes enviados tiene como destino uno de los recursos definidos, cuando en el mensaje i-esimo se alcance el final de la lista de recursos disponibles se vuelve a empezar por el primero.

Constructor & Destructor Documentation

◆ RoundRobinDelivery()

anna::comm::RoundRobinDelivery::RoundRobinDelivery ( const char *  name,
const bool  isCritical 
)
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.
35  :
36  comm::Service(name, isCritical),
37  a_iiserver(0)
38  {;}
bool isCritical() const
Definition: Service.hpp:45

Member Function Documentation

◆ asString()

std::string anna::comm::RoundRobinDelivery::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::RoundRobinDelivery::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::RoundRobinDelivery::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.
50 { return "anna::comm::RoundRobinDelivery"; }

◆ do_initialize()

void anna::comm::RoundRobinDelivery::do_initialize ( )
protectedvirtualnoexcept

Inicializa el reparto de recursos.

Implements anna::comm::Delivery.


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