timer_manager.h

来自「linux下同一个进程中多个定时器实现。简单描述下定时器模块的实现」· C头文件 代码 · 共 44 行

H
44
字号
#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 + =
减小字号Ctrl + -
显示快捷键?