ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Component.hpp>
Classes | |
struct | State |
Public Member Functions | |
virtual | ~Component () |
void | attach () noexcept(false) |
virtual std::string | asString () const |
virtual xml::Node * | asXML (xml::Node *parent) const |
![]() | |
const char * | getClassName () 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 | |
Protected Member Functions | |
Component (const char *className) | |
State::_v | getState () const |
void | addPredecessor (const char *componentName) |
void | initialize () noexcept(false) |
void | stop () |
virtual void | kill () |
![]() | |
Component (const char *className) | |
Component (const Component &other) | |
![]() | |
Safe () | |
Friends | |
void | Application::startComponents () noexcept(false) |
void | Application::stopComponents () noexcept(false) |
void | Application::attach (Component *) noexcept(false) |
Application & | Application::clone () noexcept(false) |
Additional Inherited Members | |
![]() | |
const std::string | a_className |
Clase de la que heredan los componentes de aplicacion.
Solo deberia haber una instancia de cada uno de los componentes, pero no podemos declararlos como heredados de anna::Singleton porque debemos dar la posiblidad de que el programador re-escriba su comportamiento mediante herencia.
Todos los componentes se arrancan y paran automaticamente desde la aplicacion.
El siguiente ejemplo muestra como obtener la instancia de un componente asociado a nuestra aplicacion:
Si el componente 'Clase' no hubiera sido registrado (instanciado) en nuestra aplicacion el metodo template anna::component lanzara una excepcion.
|
virtual |
Destructor.
Reimplemented from anna::Component.
|
explicitprotected |
Contructor.
className | Nombre lgico asociado a esta clase. |
|
protected |
Indica que el nombre de un componente que debe ser initializa antes que este.
componentName | Nombre de componente requerido por esta instancia. |
|
virtual |
Devuelve una cadena con la informacion mas relevante de esta instancia.
Reimplemented from anna::Component.
Reimplemented in anna::comm::Communicator, anna::diameter::comm::Engine, anna::dbms::Database, and anna::timex::Engine.
Devuelve un documento XML con la informacion mas relevante de esta instancia.
parent | Nodo XML del que colgar la informacion referente a esta instancia. |
Reimplemented from anna::Component.
Reimplemented in anna::comm::Communicator, anna::diameter::comm::Engine, anna::ldap::Engine, anna::dbms::Database, and anna::timex::Engine.
|
noexcept |
Conecta explicitamente este componente con la aplicacion. Sera necesario invocar a este metodo cuando instanciemos un componentes despues de comenzar la ejecucion de nuestra aplicacion y cuando el nuevo componente este completamente listo para su inicializacion.
|
inlineprotected |
|
protectednoexcept |
metodo que debemos implementar si la clase heredada necesita algn tipo de inicializacin. Este metodo se invocara automaticamente desde anna::Application::start.
|
inlineprotectedvirtual |
metodo que debemos implementar en la clase heredada para implementar el proceso de parada de esta clase. Se invocara automaticamente desde el nucleo
Este metodo implementa un metodo de parada no controlada.
|
inlineprotected |
metodo que debemos implementar en la clase heredada para implementar el proceso de parada de esta clase.
Este metodo debe implementar un metodo de parada controlada. Se invocara automaticamente desde el nucleo
|
friend |
|
friend |
|
friend |
|
friend |