- /**
- * Accesor que permite modificar el valor de los contadores asociados a un ámbito de forma segura.
- * \see anna::oam::CounterScope.
- */
- class Safe {
- public:
- /**
- * Constructor.
- * \param counterScope Ámbito de contadores a bloquear para aplicar cambios.
- * \param Texto que identifica el punto de bloqueo.
- */
- Safe(timex::Engine* ttcc, CounterScope& counterScope, const char* whatis);
-
- /**
- * Destructor.
- */
- ~Safe() throw();
-
- /**
- * Incrementa el contador recibido como parámetro.
- * \warning La invocación a este método deberá hacerse sobre una sección crítica que proteja
- * a este ámbito.
- * \return El valor actual del contador.
- */
- Counter::type_t increment(const int counter, const Counter::type_t value) throw(RuntimeException) { return a_counterScope.increment(counter, value); }
-
- /**
- * Establece el valor del contador recibido como parámetro.
- * \warning La invocación a este método deberá hacerse sobre una sección crítica que proteja
- * a este ámbito.
- * \return El valor actual del contador.
- */
- Counter::type_t assign(const int counter, const Counter::type_t value) throw(RuntimeException) { return a_counterScope.assign(counter, value); }
-
- private:
- CounterScope& a_counterScope;
- Guard* a_guards [2];
- };