62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
|
//+------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 1993.
|
||
|
//
|
||
|
// File: stopwtch.hxx
|
||
|
//
|
||
|
// Contents: class definition for performance timer
|
||
|
//
|
||
|
// Classes: CStopWatch
|
||
|
//
|
||
|
// Functions:
|
||
|
//
|
||
|
// History: 8-July-93 t-martig Created
|
||
|
//
|
||
|
//--------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef __STOPWTCH_H
|
||
|
#define __STOPWTCH_H
|
||
|
|
||
|
class CStopWatch
|
||
|
{
|
||
|
public:
|
||
|
CStopWatch();
|
||
|
ULONG Read ();
|
||
|
void Reset ();
|
||
|
ULONG Resolution ();
|
||
|
|
||
|
private:
|
||
|
LARGE_INTEGER liStart;
|
||
|
LARGE_INTEGER liFreq;
|
||
|
};
|
||
|
|
||
|
// Helper functions to make the code cleaner when you want to be
|
||
|
// able to get both the individual and average times.
|
||
|
inline void ResetAverage( BOOL fAverage, CStopWatch &sw )
|
||
|
{
|
||
|
if (fAverage)
|
||
|
sw.Reset();
|
||
|
}
|
||
|
|
||
|
inline void ResetNotAverage( BOOL fAverage, CStopWatch &sw )
|
||
|
{
|
||
|
if (!fAverage)
|
||
|
sw.Reset();
|
||
|
}
|
||
|
|
||
|
inline void ReadAverage( BOOL fAverage, CStopWatch &sw,
|
||
|
ULONG &ulTime, ULONG ulIterations )
|
||
|
{
|
||
|
if (fAverage)
|
||
|
ulTime = sw.Read() / ulIterations;
|
||
|
}
|
||
|
|
||
|
inline void ReadNotAverage( BOOL fAverage, CStopWatch &sw, ULONG &ulTime )
|
||
|
{
|
||
|
if (!fAverage)
|
||
|
ulTime = sw.Read();
|
||
|
}
|
||
|
|
||
|
#endif // __STOPWTCH_H
|