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

#include <MicroMeter.hpp>

Public Member Functions

 MicroMeter ()
 
 MicroMeter (const MicroMeter &other)
 
Microsecond setControlPoint ()
 
void setTopReference (const Microsecond &topReference)
 
void clearTopReference ()
 
Microsecond getDelay () const
 
MicroMeteroperator= (const Microsecond &timestamp)
 
MicroMeteroperator= (const MicroMeter &other)
 

Detailed Description

Facilita la medicion de los tiempos empleados las distintas partes de nuestra aplicacion.

Permite calcular tiempos acumulados como tiempos individuales. Por ejemplo:

#include <anna.timex.MicroMeter.h>
void foo () {
timex::MicroMeter meter;
goo ();
Microsecond gooTime = meter.getDelay ();
hoo ();
Microsecond goohooTime = meter.setControlPoint ();
joo ();
Microsecond jooTime = meter.getDelay ();
}

Constructor & Destructor Documentation

◆ MicroMeter() [1/2]

anna::timex::MicroMeter::MicroMeter ( )
inline

Constructor Inicializa la cuenta de temporizacion.

47 { a_timestamp = functions::microsecond(); a_topReference = (Microsecond)0; }
static Microsecond microsecond()
Definition: functions.hpp:368
Here is the call graph for this function:

◆ MicroMeter() [2/2]

anna::timex::MicroMeter::MicroMeter ( const MicroMeter other)
inline

Constructor copia. Copia la cuenta de utilizacion de la instancia recibida como parametro.

Parameters
otherInstancia de la copiar los parametros para calcular el tiempo transcurrido.
54 : a_timestamp(other.a_timestamp) { a_topReference = (Microsecond)0; ;}

Member Function Documentation

◆ clearTopReference()

void anna::timex::MicroMeter::clearTopReference ( )
inline

Elimina el punto de referencia temporal.

87 { a_topReference = (Microsecond)0; }

◆ getDelay()

Microsecond anna::timex::MicroMeter::getDelay ( ) const
inline

Devuelve el número de milisegundos transcurridos desde la última vez que inicializamos la cuenta de temporización. Si se ha establecido un punto de referencia mediante setTopReference, devolverá la diferencia entre el el punto de control y la referencia, en otro caso, devolverá la diferencia entre el punto de control y el momento actual.

Returns
El número de milisegundos transcurridos desde la última vez que inicializamos la cuenta de temporizacion.
Warning
Si detecta algun fallo devolvera 0.
97  {
98  Microsecond now = (a_topReference == 0) ? functions::microsecond() : a_topReference;
99  return (now > a_timestamp) ? (now - a_timestamp) : (Microsecond)0;
100  }
static Microsecond microsecond()
Definition: functions.hpp:368
Here is the call graph for this function:

◆ operator=() [1/2]

MicroMeter& anna::timex::MicroMeter::operator= ( const Microsecond timestamp)
inline

Operador copia.

Parameters
timestampMilisegundo en el que inicilizar la cuenta de esta instancia.
Warning
Elimina el punto de referencia temporal que puediera haberse establecido con setTopReference.
See also
anna::functions::microsecond.
108 { a_timestamp = timestamp; a_topReference = (Microsecond)0; return *this; }

◆ operator=() [2/2]

MicroMeter& anna::timex::MicroMeter::operator= ( const MicroMeter other)
inline

Operador copia.

Parameters
otherInstancia de la que copiar.
114 { a_timestamp = other.a_timestamp; a_topReference = other.a_topReference; return *this; }

◆ setControlPoint()

Microsecond anna::timex::MicroMeter::setControlPoint ( void  )
inline

Inicializa la cuenta de temporizacion. Este metodo es invocado automaticamente desde el contructor la clase por lo que si vamos usar esta instancia para tomar un unica medida no es necesario invocarlo.

Warning
Elimina el punto de referencia temporal que puediera haberse establecido con setTopReference.
Returns
El número de milisegundos transcurridos desde la última vez que inicializamos la cuenta de temporizacion.
62  {
63  Microsecond now = functions::microsecond();
64  Microsecond result = (now > a_timestamp) ? (now - a_timestamp) : (Microsecond)0;
65  a_timestamp = now;
67  return result;
68  }
void clearTopReference()
Definition: MicroMeter.hpp:87
static Microsecond microsecond()
Definition: functions.hpp:368
Here is the call graph for this function:

◆ setTopReference()

void anna::timex::MicroMeter::setTopReference ( const Microsecond topReference)
inline

Se da la posiblidad de establecer un punto de referencia temporal de forma que cuando se invoque a MicroMeter::getDelay, el calculo de la diferencia de tiempo no se hará entre la marca de tiempo y el tiempo actual, sino la marca de tiempo y ésta marca de referencia.

Esta funcionalidad ha sido requerida para medir el tiempo de ejecución "real" de tareas que se ejecutan dentro de un thread. Ya que puede pasar un tiempo indeterminado desde que se termina la tarea MT (momento en el que se establecerá la marca de tiempo) y el núcleo y demás partes pueden tener conocimiento de que esa tarea ha sido finalidad.

82 { a_topReference = topReference; }

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