//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1991 - 1999 // // File: time.hxx // //-------------------------------------------------------------------------- /* -------------------------------------------------------------------- Microsoft OS/2 LAN Manager Copyright(c) Microsoft Corp., 1990 -------------------------------------------------------------------- */ /* -------------------------------------------------------------------- File: time.hxx Description: This file provides a system independent high resolution timer package. History: stevez 08/13/91 First bits in bucket -------------------------------------------------------------------- */ #ifndef __TIMER__ #define __TIMER__ #ifdef TIMERPC class TIMER { private: short hTimer; // high resolution timer handle short hTimerSecondary; // secondary timer unsigned long OverHeadSecondary; // overhead of secondary timer short UsedCount; // useage of the timer unsigned long TimeSlots[TIME_MAX]; // Array of timer slots public: TIMER() { Initial(); } void Initial() { UsedCount = 0; hTimer = -1; hTimerSecondary = -1; OverHeadSecondary = 0; } ~TIMER(); short & RefCount() {return(UsedCount);} void ResetTime(void); void ResetTimeAux(void); unsigned long ReadTimeAux(void); void ChargeTime(TIME_SLOT Account); void ChargeTimeCalibrate(TIME_SLOT Account); unsigned long *GetTime(void) { return (TimeSlots); } friend void RPC_ENTRY _DoneTimeApi( char *, unsigned long *); friend void RPC_ENTRY _StartTimeApi(unsigned long *); }; #else //TIMERPC class TIMER { private: static unsigned long TimeSlots[TIME_MAX]; public: void ResetTime(void) {} void ChargeTime(TIME_SLOT Account) {(void) Account;} unsigned long * GetTime(void) {return (TimeSlots);} void Initial() {} }; #endif //TIMERPC #endif // __TIMER__