ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | Protected Member Functions | Friends | List of all members
anna::Runnable Class Referenceabstract

#include <Runnable.hpp>

Inheritance diagram for anna::Runnable:
Inheritance graph
[legend]
Collaboration diagram for anna::Runnable:
Collaboration graph
[legend]

Public Member Functions

const std::string & getId () const
 
bool hasRequestedStop () const
 
bool isRunning () const
 
void requestStop () noexcept(false)
 
virtual std::string asString () 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
 

Protected Member Functions

 Runnable ()
 
 Runnable (const std::string &id)
 
 Runnable (const char *id)
 
void setId (const std::string &id)
 
void setIsRunning (const bool isRunning)
 
virtual void initialize () noexcept(false)
 
virtual void run () noexcept(false)
 
virtual void terminate ()
 
virtual void do_action () noexcept(false)=0
 
- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Friends

class Thread
 

Detailed Description

Clase generica para implementar clases que deben realizar una unica accion concreta y que puede ser lanzada desde un Thread.

Constructor & Destructor Documentation

◆ Runnable() [1/3]

anna::Runnable::Runnable ( )
inlineprotected

Constructor.

72 : a_id("<none>"), a_requestedStop(false), a_isRunning(false) {;}

◆ Runnable() [2/3]

anna::Runnable::Runnable ( const std::string &  id)
inlineprotected

Constructor.

Parameters
idNombre logico de esta instancia.
78 : a_id(id), a_requestedStop(false), a_isRunning(false) {;}

◆ Runnable() [3/3]

anna::Runnable::Runnable ( const char *  id)
inlineprotected

Constructor.

Parameters
idNombre logico de esta clase.
84 : a_id(id), a_requestedStop(false), a_isRunning(false) {;}

Member Function Documentation

◆ asString()

virtual std::string anna::Runnable::asString ( void  ) const
inlinevirtual

Devuelve una cadena con la informacion relevante de este objeto.

Returns
Una cadena con la informacion relevante de este objeto.

Reimplemented in anna::ldap::Session, anna::comm::Handler, and anna::timex::TickConsumer.

60  {
61  std::string result("anna::Runnable { Id: ");
62  result += a_id;
63  result += functions::asText(" | Running: ", a_isRunning);
64  result += functions::asText(" | RequestedStop: ", a_requestedStop);
65  return result += " }";
66  }
static std::string asText(const char *comment, const int number)
Definition: functions.hpp:153
Here is the call graph for this function:

◆ do_action()

virtual void anna::Runnable::do_action ( )
protectedpure virtualnoexcept

Metodo indicado por Runnable::run en tanto en cuanto no se invoque a requestStop.

◆ getId()

const std::string& anna::Runnable::getId ( ) const
inline

Devuelve el nombre logico de esta instancia.

Returns
El nombre logico de esta instancia.
34 { return a_id; }

◆ hasRequestedStop()

bool anna::Runnable::hasRequestedStop ( ) const
inline

Devuelve el valor del indicador de parada.

Returns
el valor del indicador de parada.
Warning
La implementacion particular del metodo run deberia comprobar este valor periodicamente.
42 { return a_requestedStop == true; }

◆ initialize()

virtual void anna::Runnable::initialize ( )
inlineprotectedvirtualnoexcept

Metodo que se debe reescribir para inicializar el contenido de la clase justo antes de comenzar su ejecucion.

103 {;}
Here is the call graph for this function:

◆ isRunning()

bool anna::Runnable::isRunning ( ) const
inline

Devuelve true si la instancia esta en ejecucion dentro de su propio thread o false en otro caso.

Returns
true si la instancia esta en ejecucion dentro de su propio thread o false en otro caso.
48 { return a_isRunning; }
Here is the call graph for this function:

◆ requestStop()

void anna::Runnable::requestStop ( )
noexcept

Solicita la parada de esta instancia.

◆ run()

virtual void anna::Runnable::run ( )
protectedvirtualnoexcept

Metodo que debe reescribir para realizar la accion concreta. Por defecto invocara do_action mientras que no se invoque la metodo requestStop de la instancia.

◆ setId()

void anna::Runnable::setId ( const std::string &  id)
inlineprotected

Establece el nombre logico de esta instancia.

Parameters
idNuevo nombre logico de esta instancia.
90 { a_id = id; }

◆ setIsRunning()

void anna::Runnable::setIsRunning ( const bool  isRunning)
inlineprotected

Establece el indicador que informa sobre si esta instancia esta en ejecucion o no.

Parameters
isRunningIndicador que informa sobre si esta instancia esta en ejecucion.
Warning
Uso interno. Se invoca automaticamente desde Thread.
97 { a_isRunning = isRunning; }
bool isRunning() const
Definition: Runnable.hpp:48
Here is the call graph for this function:

◆ terminate()

virtual void anna::Runnable::terminate ( )
inlineprotectedvirtual

Metodo que se debe reescribir para finalizar la ejecucion de esta instancia.

Warning
La re-implementacion de este metodo siempre debera invocar a la implementacion original que esta re-escribiiendo.
116 { a_requestedStop = false; }
Here is the call graph for this function:

Friends And Related Function Documentation

◆ Thread

friend class Thread
friend

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