Remove dynamic exceptions
[anna.git] / include / anna / timex / Timer.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
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 //
7
8
9 #ifndef anna_timex_Timer_hpp
10 #define anna_timex_Timer_hpp
11
12 #include <anna/timex/TimeEvent.hpp>
13
14 namespace anna {
15
16 namespace timex {
17
18 /**
19    Clase base para los temporizadores. Se activa una unica vez y cuando transcurren los milisegundos
20    establecidos por TimeEvent::getTimeout se invoca al metodo #expire. La implementacion de este metodo
21    sera particular para cada uno de los temporizadores.
22
23    @see Clock
24 */
25 class Timer : public TimeEvent {
26 public:
27   /**
28      Constructor
29
30      @param name Nombre logico de este temporizador.
31      @param timeout Duracion del temporizador indicado en milisegundos.
32   */
33   Timer(const char* name, const Millisecond & timeout) :
34     TimeEvent(anna_ptrnumber_cast(this), timeout),
35     a_name(name) {
36   }
37
38   /**
39      Devuelve una cadena con la informacion referente a este temporizador.
40      \return Una cadena con la informacion referenta a este temporizador.
41   */
42   std::string asString() const
43   {
44     std::string msg("Timer { ");
45     msg += TimeEvent::asString();
46     msg += " | Name: ";
47     msg += a_name;
48     return msg += " }";
49   }
50
51 private:
52   std::string a_name;
53 };
54
55 }
56 }
57
58 #endif
59
60