/* */ #include "TimeA2.h" #include "Util.h" namespace aria2 { Time::Time() { reset(); } Time::Time(const Time& time) { tv = time.tv; } Time::Time(int32_t sec) { setTimeInSec(sec); } Time::~Time() {} Time& Time::operator=(const Time& time) { if(this != &time) { tv = time.tv; } return *this; } void Time::reset() { gettimeofday(&tv, 0); } struct timeval Time::getCurrentTime() const { struct timeval now; gettimeofday(&now, 0); return now; } bool Time::elapsed(int32_t sec) const { return Util::difftvsec(getCurrentTime(), tv) >= sec; } bool Time::elapsedInMillis(int32_t millis) const { return Util::difftv(getCurrentTime(), tv)/1000 >= millis; } bool Time::isNewer(const Time& time) const { return Util::difftv(this->tv, time.tv) > 0; } int32_t Time::difference() const { return Util::difftvsec(getCurrentTime(), tv); } int64_t Time::differenceInMillis() const { return Util::difftv(getCurrentTime(), tv)/1000; } int64_t Time::differenceInMillis(const struct timeval& now) const { return Util::difftv(now, tv)/1000; } bool Time::isZero() const { return tv.tv_sec == 0 && tv.tv_usec == 0; } int64_t Time::getTimeInMicros() const { return (int64_t)tv.tv_sec*1000*1000+tv.tv_usec; } int64_t Time::getTimeInMillis() const { return (int64_t)tv.tv_sec*1000+tv.tv_usec/1000; } int32_t Time::getTime() const { return tv.tv_sec; } void Time::setTimeInSec(int32_t sec) { tv.tv_sec = sec; tv.tv_usec = 0; } } // namespace aria2