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

📄 timer.h

📁 PPP服务端实现例子
💻 H
字号:
//Timer.h - Generic timing engine and basic time/date functions
//Robert Merrison - 2001

#ifndef _TIMER_H_
#define _TIMER_H_

#include <stdio.h>
#include <time.h>
#include "debug.h"

#define OS_WINDOWS 1
#define OS_LINUX 2
#define OS_OTHER 3

/*Cross-platform stuff*/
#ifdef WIN32
	#define OS 1	//Operating system is windows
	#include <windows.h>
#else
	#ifdef linux
		#define OS 2	//Operating system is linux

#else
	#define OS 3	//Unknown/incompatible OS
#endif
#endif

/*Simple struct for a time inteval*/
struct	time_period{
	short	seconds;
	short	minutes;
	short	hours;
	short	days;
};

/*Event to get in the list of events*/
struct	event{
	void	( *target )( void );
	short	repetitions;
	int		interval;
	int		counter;
	event*	next_event;
	event*	previous_event;
};

/*Main timer engine class*/
class	time_engine{
public:
	bool	init( debug_engine* debug = NULL );
	void	update();
	void	kill();
	bool	is_running();
	event*	create_timer( void (*target)(void), time_period interval, short repetitions ); 
	bool	kill_timer( event* event_to_kill );
	bool	kill_all_timers();
	tm		get_current_time();
private:
	void	log_timer_message( short msg_type, char* message, ... );
	void	update_timers();
	void	advance_timer_list( int number_of_seconds );
	void	decrease_timer( event* event_to_decrease, int number_of_seconds );
	void	reset_timer( event* event_to_reset );
	int		time_to_seconds( time_period time );
	
	debug_engine*	dbg_engine;
	bool	engine_running;
	time_period	uptime;
	event*	first_event;
	event*	last_event;
	int		event_count;

	time_t	previous_time;

};

#endif

⌨️ 快捷键说明

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