Sleep is interrupted by signals other then message reception
[Tachyon.git] / src / Tachyon.h
1
2 #include <time.h>
3 #include <fcntl.h>
4 #include <sys/stat.h>
5 #include <mqueue.h>
6
7
8 class Tachyon
9 {
10    char      queue_name[255];
11    mqd_t     msg_queue;
12    int       msg_sequence;
13
14    timespec  offset;
15    timespec  T0;
16
17    double    accelleration;
18
19
20 public:
21
22    Tachyon();
23    Tachyon(const char *name);
24    ~Tachyon();
25    const char * name(void);
26
27    void expect_message(void);
28    void receive_message(void);
29
30    time_t   time(void);
31    timespec gettime(void);
32
33    int nanosleep(struct timespec req);
34    int nanosleep(float req);
35    int sleep_until(timespec ends_at);
36
37    void settime(time_t sec);
38    void accellerate(double factor);
39 };
40
41 //  Operations on timespec structures
42
43 timespec operator + (timespec a, timespec b);
44 timespec operator - (timespec a, timespec b);
45
46 bool operator < (timespec a, timespec b);