时间轮
timer.h
//
// Created by lzp on 22-10-9.
//
#ifndef DOWNLOAD_TIMER_H
#define DOWNLOAD_TIMER_H
#define TIME_WHEEL_SIZE 8
typedef void (*_func)(void);
struct timer_node {
struct timer_node *next;
int rotation;
_func callback;
timer_node():next(nullptr),rotation(0),callback(nullptr){
}
};
struct timer_wheel {
struct timer_node *slot[TIME_WHEEL_SIZE];
int current;
timer_wheel():slot{
nullptr},current(0){
}
};
class timer {
public:
timer()