/* ==================================================================== * ÆÄ ÀÏ : AppTimer.h * ¸ñ Àû : ¾îÇø®ÄÉÀÌ¼Ç ±âº» ŸÀÌ¸Ó Å¬·¡½º * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2005.12 * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once #include "sqltypes.h" /// ¾îÇø®ÄÉÀÌ¼Ç Å¸ÀÌ¸Ó class cAppTimer { static cAppTimer* mpSingleton; public: cAppTimer(); ~cAppTimer(); /// ŸÀÌ¸Ó ½ÃÀÛ ¹× Á¾·á void Start(); void Stop(); /// Àç¼³Á¤ void Reset(); /// void Advance(); // get the absolute system time unsigned long GetAbsoluteTime(); // get the current time unsigned long GetCurrentTime(); // get the time that elapsed between GetElapsedTime() calls unsigned long GetDeltaTime(); inline bool IsStopped() { return mTimerStopped; } /// ÇöÀç ÄÄÇ»ÅÍÀÇ ½ÇÁ¦ ½Ã°è¸¦ °¡Á®¿È TIMESTAMP_STRUCT GetRealTime(); /// ÇöÀç ÄÄÇ»ÅÍÀÇ ½ÇÁ¦ ½Ã°è¿¡ sec(´ÜÀ§:ÃÊ)¸¦ ´õÇÑ ½Ã°è¸¦ °¡Á®¿È TIMESTAMP_STRUCT GetRealPlusTime( unsigned long sec ); /// TIMESTAMP_STRUCT ÇüÅÂÀÇ ½Ã°è °ªÀ» time_t·Î Àüȯ tm ConvertTStoTM( TIMESTAMP_STRUCT timestamp ); /// time_t ÇüÅÂÀÇ ½Ã°è °ªÀ» TIMESTAMP_STRUCT·Î Àüȯ TIMESTAMP_STRUCT ConvertTMtoTS( time_t datetime ); /// ½ÇÁ¦ ½Ã°£°ú ÀÔ·ÂµÈ ½Ã°£ÀÇ Â÷(´ÜÀ§:ÃÊ/1000)¸¦ ¹ÝȯÇÑ´Ù. unsigned long DiffRealTime( TIMESTAMP_STRUCT timestamp ); public: /// ´ÜÀÏü¸¦ ¸®ÅÏ static cAppTimer* GetSingleton(); private: /// QueryPerformanceFrequency »ç¿ë ¿©ºÎ bool mUsingQPF; /// bool mTimerStopped; /// QueryPerformanceCounter.. LONGLONG mllQPFTicksPerSec; LONGLONG mllStopTime; LONGLONG mllLastElapsedTime; LONGLONG mllBaseTime; /// TimeGetTime.. unsigned long mLastElapsedTime; unsigned long mBaseTime; unsigned long mStopTime; // double mLastElapsedTime; // double mBaseTime; // double mStopTime; }; inline cAppTimer* cAppTimer::GetSingleton() { return mpSingleton; } #define TIMER cAppTimer::GetSingleton()