HARDT - The Ham Radio DSP Toolkit
htimer.h
1 #ifndef __HTIMER_H
2 #define __HTIMER_H
3 
7 class HTimer
8 {
9  private:
10 
11  time_t _start;
12  time_t _stop;
13 
14  time_t ParseDateTime(char *datetime);
15 
16  static char *Asctime2(struct tm* tm);
17 
18  bool _active;
19 
20  public:
21 
25  HTimer();
26 
31  HTimer(char* stop);
32 
37  HTimer(char* start, char* stop);
38 
42  HTimer(long duration)
43  {
44  _start = time(0);
45  _stop = _start + duration;
46  }
47 
52  void SetStart(char* datetime);
53 
58  void SetStop(char* datetime);
59 
63  long Duration()
64  {
65  if( !_active )
66  {
67  return 0;
68  }
69  time_t now = time(0);
70  return _stop - now;
71  }
72 
76  bool Active()
77  {
78  time_t now = time(0);
79  return _active && now >= _start && now < _stop;
80  }
81 
85  bool Before()
86  {
87  time_t now = time(0);
88  return _active && now < _start;
89  }
90 
94  bool After()
95  {
96  time_t now = time(0);
97  return _active && now > _stop;
98  }
99 
103  void Wait();
104 
108  time_t Start()
109  {
110  return _start;
111  }
112 
116  time_t Stop()
117  {
118  return _stop;
119  }
120 };
121 
122 #endif
HTimer::SetStop
void SetStop(char *datetime)
Definition: htimer.cpp:67
HTimer::Duration
long Duration()
Definition: htimer.h:63
HTimer::HTimer
HTimer(long duration)
Definition: htimer.h:42
HTimer::After
bool After()
Definition: htimer.h:94
HTimer
Definition: htimer.h:7
HTimer::Stop
time_t Stop()
Definition: htimer.h:116
HTimer::HTimer
HTimer()
Definition: htimer.cpp:13
HTimer::SetStart
void SetStart(char *datetime)
Definition: htimer.cpp:61
HTimer::Before
bool Before()
Definition: htimer.h:85
HTimer::Active
bool Active()
Definition: htimer.h:76
HTimer::Wait
void Wait()
Definition: htimer.cpp:73
HTimer::Start
time_t Start()
Definition: htimer.h:108