// Truck Computer Dooom! // // Douglas Thrift // // $Id$ #ifndef _timing_hpp_ #define _timing_hpp_ #include namespace Timing { class Time { ::timespec time; public: Time(const ::timespec &time) : time(time) {} Time(time_t seconds = 0, long nanoseconds = 0); time_t GetSeconds() const { return time.tv_sec; } long GetNanoseconds() const { return time.tv_nsec; } void SetSeconds(time_t seconds) { time.tv_sec = seconds; } void SetNanoseconds(long nanoseconds) { time.tv_nsec = nanoseconds; } Time &operator +=(const Time &time); Time &operator -=(const Time &time); operator const ::timespec &() const { return time; } operator time_t () const { return time.tv_sec; } friend std::tm *LocalTime(const Time &time); }; Time GetTimeOfDay(); void NanoSleep(const Time &time); inline std::tm *LocalTime(const Time &time) { return std::localtime(&time.time.tv_sec); } } #endif//_timing_hpp_