Time_.h#

Class for dealing with time in a cross-platform way.

Includes#

  • cstdint

Included By#

Namespaces#

Classes#

Source Code#

#pragma once
#include <cstdint>
// Required forward declarations
#if defined(__APPLE__)
struct mach_timebase_info;
#endif
namespace pvr {
class Time
{
public:
    Time();
    ~Time();
    void Reset();
    uint64_t getElapsedNanoSecs() const;
    uint64_t getElapsedMicroSecs() const;
    float getElapsedMicroSecsF() const;
    uint64_t getElapsedMilliSecs() const;
    float getElapsedMilliSecsF() const;
    uint64_t getElapsedSecs() const;
    float getElapsedSecsF() const;
    uint64_t getElapsedMins() const;
    float getElapsedMinsF() const;
    uint64_t getElapsedHours() const;
    float getElapsedHoursF() const;

    uint64_t getCurrentTimeNanoSecs() const;

    uint64_t getCurrentTimeMicroSecs() const;

    uint64_t getCurrentTimeMilliSecs() const;

    uint64_t getCurrentTimeSecs() const;

    uint64_t getCurrentTimeMins() const;

    uint64_t getCurrentTimeHours() const;

private:
    uint64_t getTimerFrequencyHertz() const;
    uint64_t _startTime;
    uint64_t _timerFrequency;

#if defined(__APPLE__)
    struct mach_timebase_info* _timeBaseInfo;
#endif
};
} // namespace pvr