ANNA Suite
2020b
Multipurpose development suite for Telco applications
|
#include <Semaphore.hpp>
Public Member Functions | |
Semaphore (unsigned int count) | |
virtual | ~Semaphore () |
void | wait () noexcept(false) |
bool | tryWait () noexcept(false) |
void | signal () noexcept(false) |
virtual std::string | asString () const |
Protected Member Functions | |
void | lock () noexcept(false) |
void | unlock () |
Protected Member Functions inherited from anna::Safe | |
Safe () | |
Clase para facilitar el uso de semaforos.
Esta facilidad que nos ofrece el sistema operativo se suele usar para limitar el numero de accesos a un determinado recurso.
La funcionalidad de esta clase solo estara disponible en aplicaciones multithread.
anna::Semaphore::Semaphore | ( | unsigned int | count | ) |
Constructor.
count | Numero de accesos simultaneos que permitimos sobre el recurso que queremos compartir. |
mode | Modo de actuacion de esta instancia en modo ST cuando montamos una seccion critca sobre este objeto. En modo MT siempre sera Mode::Normal, es decir abre una seccion critica sobre este objeto, que bloqueara a cualquier otro thread que intente acceder a el. |
|
virtual |
Destructor.
|
virtual |
Devuelve una cadena con informacion relevante de esta instancia.
|
inlineprotectedvirtualnoexcept |
Marca el inicio del acceso seguro a este objeto.
Implements anna::Safe.
|
noexcept |
Decrementa la cuenta de utilizacion del recurso, con lo que algunos de los threads que puede haber esperando se desbloqueara.
|
noexcept |
Comprueba si se ha alcanzado la cuenta maxima de accesos simultaneos y devolvera true si todavia es posible acceder sin quedar bloqueado o false en otro caso.
|
inlineprotectedvirtual |
Indica el final del acceso seguro iniciado al invocar lock.
Implements anna::Safe.
|
noexcept |