1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_core_oam_Counter_hpp
10 #define anna_core_oam_Counter_hpp
12 #include <anna/core/util/defines.hpp>
23 Permite un sistema rapido para registrar situaciones ocurridas en las aplicaciones.
27 typedef unsigned int type_t;
30 Devuelve el nombre logico del contador, que coincidira con el indicado a la hora
31 de crear el contador mediante el metodo CounterScope::create.
32 \return El nombre logico del contador.
34 const std::string& getName() const throw() { return a_name; }
37 Devuelve la referencia logica de este contador. Sera el numero resultante de combinar
38 el numero de ambito en el que esta registrado y el numero de contador dentro de este
40 \return La referencia logica de este contador.
42 int getReference() const throw();
45 * Devuelve el valor actual de este contador. Este valor se podrĂ¡ a cero cada vez que los contadores
47 * \return El valor actual de este contador.
49 type_t getValue() const throw() { return a_value; }
52 * Devuelve el valor acumulado de este contador.
53 * \return El valor acumulado de este contador.
55 U64 getAccumulatedValue() const throw() { return a_accValue; }
58 Operador de conversion.
59 \return El valor asociado a este contador.
61 operator type_t () const throw() { return a_value; }
64 Inicializa el valor de este contador.
66 void reset() throw() { a_value = 0; }
69 Inicializa el valor acumulado de este contador.
70 \return Devuelve 'true' si fue reseteado, 'false' si ya lo estaba
72 bool resetAcc() throw() { bool result = (a_accValue != 0); a_accValue = 0; return result; }
76 Devuelve una cadena con la informacion relevante de este objeto.
77 \return Una cadena con la informacion relevante de este objeto.
79 std::string asString() const throw();
82 CounterScope& a_scope;
88 Counter(CounterScope& scope, const int id, const char* name);
89 Counter(const Counter&);
91 void debug() const throw();
93 friend class CounterScope;