-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtimer.cpp
More file actions
111 lines (94 loc) · 1.83 KB
/
Copy pathtimer.cpp
File metadata and controls
111 lines (94 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*********************************************************************
> File Name: timer.cpp
> Author: 彭治湘
> Mail: 345109788@qq.com
> Created Time: Wednesday 09 December 2015 05:36:30 PM CST
********************************************************************/
#include "timer.h"
#include "task.h"
#include "wheelnode.h"
//构造
Timer::Timer(Task* task,uint32_t remain)
{
m_task = task;
m_node = NULL;
m_remain = remain;
m_prev = NULL;
m_next = NULL;
}
//析构,删除的时候同时从槽中删除这个定时器
Timer::~Timer()
{
if(m_node != NULL)
{
//从槽中删除这个定时器
m_node->DeleteTimer(this);
}
}
void Timer::SetTask(Task* task)
{
m_task = task;
}
Task* Timer::GetTask()
{
return m_task;
}
//得到上一个定时器
Timer* Timer::GetPrev()
{
return m_prev;
}
//得到下一个定时器
Timer* Timer::GetNext()
{
return m_next;
}
//设置上一个定时器
void Timer::SetPrev(Timer* prev)
{
m_prev = prev;
}
//设置下一个定时器
void Timer::SetNext(Timer* next)
{
m_next = next;
}
//定时器出发调用的函数
void Timer::OnTimer()
{
if(m_task != NULL)
{
m_task->OnTask(this);
}
}
//获取定时器的剩余时间
uint32_t Timer::GetRemain() const
{
return m_remain;
}
//设置定时器的剩余时间
void Timer::SetRemain(uint32_t remain)
{
m_remain = remain;
}
//设置槽,不能简单的进行设置,要根据顺序进行插入,暂时不做处理把
void Timer::SetNode(WheelNode* node)
{
//m_node = node;
}
//获取槽
WheelNode* Timer::GetNode()
{
return m_node;
}
//插入定时器任务到时间轮中
bool Timer::Schedule(Task* task,uint32_t minsec)
{
//m_remain = minsec;
//return Singletion<Wheel>()->InsertTimer(this);
}
//销毁定时器
void Timer::Destroy()
{
delete this;
}