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

#include <Thread.hpp>

Classes

struct  Flag
 

Public Member Functions

 Thread ()
 
virtual ~Thread ()
 
pthread_t getId () const
 
void setFlags (const int flags)
 
bool isJoinable () const
 
bool isRunning () const
 
void start (Runnable &runnable) noexcept(false)
 
void testCancel ()
 
void join () noexcept(false)
 
virtual std::string asString () const
 

Friends

class Allocator< Thread >
 
class ThreadManager
 

Detailed Description

Recubrimiento para acceder a las funciones de threads de POSIX.

La funcionalidad de �ta clase slo estar�disponible en aplicaciones multithread aunque el interfaz se mantiene constante de cualquier forma.

Constructor & Destructor Documentation

◆ Thread()

anna::Thread::Thread ( )
inline

Constructor.

44 : a_id((pthread_t) - 1), a_manager(NULL), a_flags(Flag::None) {;}
Definition: Thread.hpp:38
Here is the call graph for this function:

◆ ~Thread()

virtual anna::Thread::~Thread ( )
virtual

Destructor.

Member Function Documentation

◆ asString()

virtual std::string anna::Thread::asString ( ) const
virtual

Devuelve una cadena con la informacin referente a �te thread.

Returns
Una cadena con la informacin referente a �te thread.

◆ getId()

pthread_t anna::Thread::getId ( ) const
inline
Returns
El identificador de este thread a nivel de sistema operativo.
55 { return a_id; }

◆ isJoinable()

bool anna::Thread::isJoinable ( ) const
inline

Devuelve el indicador que informa sobre si se podría aplicar el método join sobre este thread

67 { return (a_flags & Flag::Joinable) != 0; }
Definition: Thread.hpp:38

◆ isRunning()

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

Devuelve el estado de ejecucion de �te thread.

Returns
El estado de ejecucion de �te thread true si est�en ejecucion o false en otro caso.
74 { return (a_id != (pthread_t) - 1); }
Here is the call graph for this function:

◆ join()

void anna::Thread::join ( )
noexcept

Suspende la ejecución del thread que invoca a este método hasta que termine la ejecución del thread sobre el que aplica.

try {
B.start ();
A.start ();
cout << "Esperando a B." << endl;
B.join ();
cout << "B terminado." << endl;
A.cancel ();
}
catch (Exception& e) {
....
}

Con esto desde el thread C hemos lanzado los threads A y B; C quedar�bloqueado a la espera de que termine la ejecucion del thread B y una vez hecho esto termina la ejecucion del thread A.

◆ setFlags()

void anna::Thread::setFlags ( const int  flags)
inline

Establece los flags que configuran el comportamiento de este thread.

Parameters
flagUna combinación de los valores definidos por Thread::Flags::_v.
Warning
Los flags deben establecerse antes de invocar al método start.
62 { a_flags = flags; }

◆ start()

void anna::Thread::start ( Runnable runnable)
noexcept

Comienza la ejecucion de este threads siempre y cuando el thread no est�ejecutandose actualmente.

Invoca al m�odo anna::Runnable::run del runnable recibido como par�etro.

Parameters
runnableInstancia del objeto que va a ser ejecutado en el nuevo thread.

◆ testCancel()

void anna::Thread::testCancel ( )
inline

Introduce un nuevo punto de cancelacin. Esto slo sera necesario en caso de que el proceso que implementa nuestro thread no haga ninguna llamada al sistema.

91 { pthread_testcancel(); }
Here is the call graph for this function:

Friends And Related Function Documentation

◆ Allocator< Thread >

friend class Allocator< Thread >
friend

◆ ThreadManager

friend class ThreadManager
friend

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