open_toontown_panda3d/panda/src/express/trueClock.h

67 lines
2.2 KiB
C++

// Filename: trueClock.h
// Created by: drose (04Jul00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
//
// All use of this software is subject to the terms of the Panda 3d
// Software license. You should have received a copy of this license
// along with this source code; you will also find a current copy of
// the license at http://etc.cmu.edu/panda3d/docs/license/ .
//
// To contact the maintainers of this program write to
// panda3d-general@lists.sourceforge.net .
//
////////////////////////////////////////////////////////////////////
#ifndef TRUECLOCK_H
#define TRUECLOCK_H
#include "pandabase.h"
#include "typedef.h"
////////////////////////////////////////////////////////////////////
// Class : TrueClock
// Description : An interface to whatever real-time clock we might
// have available in the current environment. There is
// only one TrueClock in existence, and it constructs
// itself.
//
// The TrueClock returns elapsed real time in seconds
// since some undefined epoch. Since it is not defined
// at what time precisely the clock indicates zero, this
// value can only be meaningfully used to measure
// elapsed time, by sampling it at two different times
// and subtracting.
////////////////////////////////////////////////////////////////////
class EXPCL_PANDAEXPRESS TrueClock {
public:
INLINE static TrueClock *get_ptr();
// get_long_time() returns the most accurate timer we have over a
// long interval. It may not be very precise for measuring short
// intervals, but it should not drift substantially over the long
// haul.
double get_long_time() const;
// get_short_time() returns the most precise timer we have over a
// short interval. It may tend to drift over the long haul, but it
// should have lots of digits to measure short intervals very
// precisely.
double get_short_time() const;
protected:
TrueClock();
INLINE ~TrueClock();
static TrueClock *_global_ptr;
};
void get_true_time_of_day(ulong &sec, ulong &usec);
#include "trueClock.I"
#endif