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

📄 timer_manager.h

📁 linux下同一个进程中多个定时器实现。简单描述下定时器模块的实现
💻 H
字号:
#ifndef __CTIMER_MANGER_H_
#define __CTIMER_MANGER_H_
#include "timer.h"
#include <pthread.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#define DEFULT_INTERVAL 1000   
#define DEFAUL_REPAIR 20
class CTimerManager
{
public:
	
	typedef enum
	{
		TIMER_MANAGER_STOP=0,
		TIMER_MANAGER_START
	}TimerManagerState;
	
	static CTimerManager * instance();
	void add_timer(CTimer * vtimer);
	void remove_timer(CTimer * vtimer);
	void start(unsigned long interval=DEFULT_INTERVAL,unsigned long repair=DEFAUL_REPAIR);
	void stop();
	void dump();
protected:
	static void * process(void *);
private:	
	void add_timer_(CTimer * vtimer);
	void remove_timer_(CTimer * vtimer);
	
	CTimerManager();
	static pthread_mutex_t m_mutex;
	static CTimerManager * m_instance;
	
	TimerManagerState m_state;
	struct timeval m_interval;
	struct timeval m_repair;
	TAILQ_HEAD(,CTimer) list_;

	static unsigned int mark;
};
#endif

⌨️ 快捷键说明

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