587ae25b84177c5af73d1794bba555c6643b39bd
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

1) /* Blinker
2)    Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

6) #ifndef BLINKER_TIME_H
7) #define BLINKER_TIME_H
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

8) 
9) #include <stdint.h>
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

10) #include <sys/time.h>
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

11) #include <time.h>
12) 
13) namespace Blinker {
14) 
15) /// time, either point in time or duration
16) class Time
17) {
18) public:
19)   static const Time zero; ///< zero time
20) 
21) public:
22)   /**
23)    * @brief get current time
24)    * @return current time
25)    */
26)   static Time now();
27) 
28) public:
29)   /// constructor
30)   Time();
31) 
32)   /**
33)    * @brief constructor from seconds
34)    * @param[in] t time in seconds
35)    */
36)   Time(time_t t);
37) 
38) public:
39)   /// comparison
40)   //@{
41)   int compare(const Time &that) const;
42)   bool operator==(const Time &that) const;
43)   bool operator!=(const Time &that) const;
44)   bool operator<(const Time &that) const;
45)   bool operator>(const Time &that) const;
46)   bool operator<=(const Time &that) const;
47)   bool operator>=(const Time &that) const;
48)   //@}
49) 
50)   /// arithmetic
51)   //@{
52)   const Time & operator+=(const Time &that);
53)   const Time & operator-=(const Time &that);
54)   Time operator+(const Time &that) const;
55)   Time operator-(const Time &that) const;
56)   //@}
57) 
58)   /**
59)    * @brief convert from milliseconds
60)    * @param[in] ms milliseconds
61)    */
62)   void fromMs(int ms);
63) 
64)   /**
65)    * @brief convert to seconds
66)    * @return seconds
67)    */
68)   time_t toSec() const;
69) 
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

70)   /**
71)    * @brief convert to struct timeval
72)    * @param[out] tv struct timeval
73)    */
74)   void toTimeval(struct timeval &tv) const;
75) 
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

76) public:
77)   /// sleep for duration
78)   void sleepFor() const;
79) 
80)   /// sleep until time
81)   void sleepUntil() const;
82) 
83) protected:
84)   /// fix internal time representation after calculation
85)   void fix();
86) 
87) protected:
88)   int64_t m_sec; ///< seconds
89)   int64_t m_ns;  ///< nanoseconds
90) }; // class Time
91) 
92) } // namespace Blinker
93) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

94) #endif // #ifndef BLINKER_TIME_H