summaryrefslogtreecommitdiff
path: root/yhttpd/src/time/timr.h
blob: 12cdd8f5f27b90d0b5d53b078007b92b3529bc07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "../incl.h"

#ifndef TIMR_H
#define TIMR_H

#include "../thrd/thro.h"

#include <unistd.h>

using namespace std;

class timr : public thro
{
private:
  bool b_timer_active;
  int  i_time_offset;
  string s_uptime;
  string s_time;

  pthread_mutex_t mut_s_time;
  pthread_mutex_t mut_s_uptime;
  pthread_mutex_t mut_i_offset;

public:
  timr();
  ~timr();

  bool get_timer_active() const;
  void start( void *v_ptr );

#ifdef NCURSES

  void print_time();
#endif

  void set_time( double d_uptime, int i_cur_seconds, int i_cur_minutes, int i_cur_hours );
  string add_zero_to_front( string s_time );

  // inline for dynamic module access!
  string
  get_time(  )
  {
    string s_ret;
    pthread_mutex_lock  ( &mut_s_time );
    s_ret = this->s_time;
    pthread_mutex_unlock( &mut_s_time );
    return s_ret;
  }

  string
  get_uptime(  )
  {
    string s_ret;
    pthread_mutex_lock  ( &mut_s_uptime );
    s_ret = this->s_uptime;
    pthread_mutex_unlock( &mut_s_uptime );
    return s_ret;
  }

  int get_offset();
  double get_time_diff( time_t &clock_diff );
};

#endif