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

#include <ThreadManager.hpp>

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

Classes

struct  Mode
 

Public Types

typedef iterator thread_iterator
 

Public Member Functions

 ThreadManager (const char *name, const Mode::_v mode, const int maxSize, const int flags=Thread::Flag::None)
 
 ThreadManager (const char *name, const int flags=Thread::Flag::None)
 
virtual ~ThreadManager ()
 
const std::string & getName () const
 
ThreadcreateThread () noexcept(false)
 
void join () noexcept(false)
 
thread_iterator thread_begin ()
 
thread_iterator thread_end ()
 
std::string asString () const
 

Static Public Member Functions

static Threadthread (thread_iterator ii)
 

Friends

class Thread
 

Detailed Description

Gestor de threads. Optimiza la creacin y uso de los threads. Como ventaja adicional limita el numero de threads que puede ser creados.

Member Typedef Documentation

◆ thread_iterator

Constructor & Destructor Documentation

◆ ThreadManager() [1/2]

anna::ThreadManager::ThreadManager ( const char *  name,
const Mode::_v  mode,
const int  maxSize,
const int  flags = Thread::Flag::None 
)

Constructor.

Parameters
nameNombre logico del la gestor de threads.
modeModo de funcionamiento de ester gestor de threads.
maxSizeNumero maximo de threads que seran creados.
flagsFlags aplicados a los threads creados por este gestor.

◆ ThreadManager() [2/2]

anna::ThreadManager::ThreadManager ( const char *  name,
const int  flags = Thread::Flag::None 
)

Constructor. Crea un gestor de thread que puede crecer con un número ilimitado de threads.

Parameters
nameNombre logico del la gestor de threads.
flagsFlags aplicados a los threads creados por este gestor.

◆ ~ThreadManager()

virtual anna::ThreadManager::~ThreadManager ( )
virtual

Destructor.

Member Function Documentation

◆ asString()

std::string anna::ThreadManager::asString ( ) const

Devuelve una cadena con la información relevante sobre este gestor de threads

Returns
una cadena con la información relevante sobre este gestor de threads

◆ createThread()

Thread* anna::ThreadManager::createThread ( )
noexcept

Obtiene la instancia de un thread. El thread sólo se liberará de forma automática cuando se termine la ejecución del mismo.

Returns
La instancia de un thread.
Warning
Solo debe haber un único punto de creación de thread's por cada instancia de esta clase.

◆ getName()

const std::string& anna::ThreadManager::getName ( ) const
inline

Devuelve el nombre asociado a este gestor.

Returns
el nombre asociado a este gestor.
73 { return a_name; }
Here is the call graph for this function:

◆ join()

void anna::ThreadManager::join ( )
noexcept

Bloquea el proceso hasta que todos los threads lanzados por este gestor hayan terminado su ejecución.

Warning
  • No debería invocarse desde un thread que haya sido creado por este gestor.
  • Los threads deberían crearse con el flag Thread::Flag::Joinable.

◆ thread()

static Thread* anna::ThreadManager::thread ( thread_iterator  ii)
inlinestatic

Devuelve el thread referenciado por el iterador recibido como parametro.

Parameters
iiIterador.
Returns
el thread referenciado por el iterador recibido como parametro.
107 { return SafeRecycler <Thread>::data(ii); }
Definition: SafeRecycler.hpp:36
Here is the call graph for this function:

◆ thread_begin()

thread_iterator anna::ThreadManager::thread_begin ( )
inline

Devuelve un iterador al comienzo de la lista de threads.

Returns
un iterador al comienzo de la lista de threads.
94 { return begin(); }
iterator begin()
Definition: Recycler.hpp:209
Here is the call graph for this function:

◆ thread_end()

thread_iterator anna::ThreadManager::thread_end ( )
inline

Devuelve un iterador al final de la lista de threads.

Returns
un iterador al final de la lista de threads.
100 { return end(); }
iterator end()
Definition: Recycler.hpp:221
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: