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

#include <Guard.hpp>

Public Member Functions

 Guard (const Safe &object) noexcept(false)
 
 Guard (const Safe *object) noexcept(false)
 
 Guard (const Safe &object, const char *whatis) noexcept(false)
 
 Guard (const Safe *object, const char *whatis) noexcept(false)
 
virtual ~Guard ()
 
void deactivate ()
 

Detailed Description

Guarda de seccion critica para cualquier tipo de objeto.

Asegura que las secciones criticas son iniciadas y terminadas correctamente, ademas en caso de terminar la seccion critica debido a una excepcion el mutex es liberado correctamente.

De esta forma nos aseguramos que solo un unico threads sera capaz de acceder y/o modificar simultaneamente el valor del miembro una instancia de la clase A.

Observar que todos los metodos que establezcan una seccion critica debe estar preparados para lanzar una excepcion de tipo anna::RuntimeException.

Para poder acceder a toda la funcionalidad de esta clase el codigo debe ser compilado con la definicion de la macro _MT.

See also
Safe.

Constructor & Destructor Documentation

◆ Guard() [1/4]

anna::Guard::Guard ( const Safe object)
inlinenoexcept

Constructor.

Parameters
objectSobre el que actuar para iniciar la guarda.
41  : a_whatis(NULL) {
42  lock(a_safeObject = const_cast <Safe*>(&object), NULL);
43  }

◆ Guard() [2/4]

anna::Guard::Guard ( const Safe object)
noexcept

Constructor.

Parameters
objectSobre el que actuar para iniciar la guarda.

◆ Guard() [3/4]

anna::Guard::Guard ( const Safe object,
const char *  whatis 
)
inlinenoexcept

Constructor.

Parameters
objectSobre el que actuar para iniciar la guarda.
whatisTexto que indica la naturaleza del objeto a bloquear.
56  : a_whatis(whatis) {
57  lock(a_safeObject = const_cast <Safe*>(&object), whatis);
58  }
Here is the call graph for this function:

◆ Guard() [4/4]

anna::Guard::Guard ( const Safe object,
const char *  whatis 
)
noexcept

Constructor.

Parameters
objectSobre el que actuar para iniciar la guarda.
whatisTexto que indica la naturaleza del objeto a bloquear.

◆ ~Guard()

virtual anna::Guard::~Guard ( )
inlinevirtual

Destructor. Termina la guarda iniciada con el objeto recibido como parametro en el constructor.

72 { deactivate(); }
void deactivate()
Here is the call graph for this function:

Member Function Documentation

◆ deactivate()

void anna::Guard::deactivate ( )

Desactiva la seccion critica antes de que termine el ambito de actuacion de la misma.


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