Initial
This commit is contained in:
81
thread/THTIMER.HPP
Normal file
81
thread/THTIMER.HPP
Normal file
@@ -0,0 +1,81 @@
|
||||
#ifndef _THREAD_THREADTIMER_HPP_
|
||||
#define _COMMON_THREADTIMER_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_CALLBACK_HPP_
|
||||
#include <common/callback.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_MMSYSTEM_HPP_
|
||||
#include <common/mmsystem.hpp>
|
||||
#endif
|
||||
#ifndef _THREAD_MUTEX_HPP_
|
||||
#include <thread/mutex.hpp>
|
||||
#endif
|
||||
|
||||
class ThreadTimer
|
||||
{
|
||||
public:
|
||||
ThreadTimer(void);
|
||||
ThreadTimer(WORD minResolution);
|
||||
virtual ~ThreadTimer();
|
||||
DWORD getSystemTime(void)const;
|
||||
WORD startTimer(UINT deltaTime);
|
||||
WORD stopTimer(void);
|
||||
WORD isRunning(void)const;
|
||||
void insertHandler(PureCallback *lpCallback);
|
||||
void removeHandler(void);
|
||||
protected:
|
||||
virtual void timerStarted(void);
|
||||
virtual void timerStopped(void);
|
||||
private:
|
||||
static void CALLBACK timerProc(UINT wTimerID,UINT mMsg,DWORD dwUser,DWORD dummyOne,DWORD dummyTwo);
|
||||
WORD isFirstBreak(void)const;
|
||||
void isFirstBreak(WORD isFirstBreak);
|
||||
|
||||
TIMECAPS mTimerCapability;
|
||||
WORD mMinResolution;
|
||||
WORD mIsOkay;
|
||||
WORD mHasTimedEvent;
|
||||
WORD mIsFirstBreak;
|
||||
UINT mTimerID;
|
||||
Mutex mTimerMutex;
|
||||
CallbackPointer mCallbackPointer;
|
||||
};
|
||||
|
||||
inline
|
||||
DWORD ThreadTimer::getSystemTime(void)const
|
||||
{
|
||||
return ::timeGetTime();
|
||||
}
|
||||
|
||||
inline
|
||||
WORD ThreadTimer::isRunning(void)const
|
||||
{
|
||||
return mHasTimedEvent;
|
||||
}
|
||||
|
||||
inline
|
||||
void ThreadTimer::insertHandler(PureCallback *lpCallback)
|
||||
{
|
||||
mCallbackPointer=CallbackPointer(lpCallback);
|
||||
}
|
||||
|
||||
inline
|
||||
void ThreadTimer::removeHandler(void)
|
||||
{
|
||||
mCallbackPointer=CallbackPointer();
|
||||
}
|
||||
|
||||
inline
|
||||
WORD ThreadTimer::isFirstBreak(void)const
|
||||
{
|
||||
return mIsFirstBreak;
|
||||
}
|
||||
|
||||
inline
|
||||
void ThreadTimer::isFirstBreak(WORD isFirstBreak)
|
||||
{
|
||||
mIsFirstBreak=isFirstBreak;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user