⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctimermanager.cpp

📁 《脚本驱动的应用软件开发方法与实践》源码
💻 CPP
字号:
//
// CTimerManager.cpp
//
// --------------------------------------------------------
// A Practical Guide to Script-Driven Software Development
// Author: Qiming Lu                        Date: 6/1/2006
// MSN Messager: luqiming26@hotmail.com
// MSN Blog: http://spaces.msn.com/jemylu
// --------------------------------------------------------

#include "stdafx.h"
#include "CTimerManager.h"
#include "CTimer.h"

CTimerManager* GetTimerMgr() { return(CTimerManager::GetInstance()); }

//	Singleton instance of CTimerManager
CTimerManager* CTimerManager::mInstance = 0;

/////////////////////////////////////////////////////////////////////////////////////////
CTimerManager::CTimerManager()
{
}

CTimerManager::~CTimerManager()
{
	TimerList::iterator itBegin(mTimerQueue.begin()), itEnd(mTimerQueue.end());
	for (TimerList::iterator it = itBegin; it != itEnd; ++it)
	{
		CTimer* pTimer = *it;
		pTimer->Release();
	}
}

void CTimerManager::CreateInstance()
{
	if (mInstance == 0)
	{
		mInstance = new CTimerManager();
	}
}

void CTimerManager::DeleteInstance()
{
	if (mInstance)
	{
		delete mInstance;
		mInstance = 0;
	}
}

CTimerManager* CTimerManager::GetInstance()
{
	return mInstance;
}

void CTimerManager::QueueTimer(CTimer* pTimer)
{
	if (pTimer)
	{
		pTimer->AddRef();
		mTimerQueue.push_back(pTimer);
	}
}

void CTimerManager::Process()
{
	static long sCounter = 0;

	TimerList::iterator itBegin(mTimerQueue.begin()), itEnd(mTimerQueue.end());
	for (TimerList::iterator it = itBegin; it != itEnd; ++it)
	{
		CTimer* pTimer = *it;
		if (pTimer)
		{
			pTimer->ProcessTicks(sCounter);
		}
	}

	++sCounter;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -