-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathtimer_event.cpp
64 lines (50 loc) · 1.01 KB
/
timer_event.cpp
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
#include "timer_event.h"
#include "lua_interface.h"
#include "log.h"
void handle_timeout(void* ptr)
{
TimerEvent* sh = (TimerEvent*)ptr;
sh->OnTimer(sh->m_ev.time_id);
}
unsigned long TimerEvent::m_increase_id = 0;
timer_list_t timer_list;
TimerEvent::TimerEvent()
{
m_guid = ++m_increase_id;
}
TimerEvent::~TimerEvent(void)
{
}
void TimerEvent::StartTimer(int sec, int usec)
{
m_timeout = sec;
start_timer(sec, usec, &m_ev);
}
void TimerEvent::StopTimer()
{
stop_timer(&m_ev);
}
void TimerEvent::ResetTimer()
{
StopTimer();
StartTimer(m_timeout);
}
//void TimerEvent::SetTimerId(int timer_id)
void TimerEvent::SetTimerId(unsigned long timer_id)
{
m_ev.time_id = timer_id;
m_ev.callback = handle_timeout;
m_ev.ptr = this;
}
//void TimerEvent::OnTimer(int timer_id)
void TimerEvent::OnTimer(unsigned long timer_id)
{
int ret;
log_debug("TimerEvent::OnTimer, timer_id = %lu \n", m_ev.time_id);
call_lua("handle_timeout", "d>d", m_guid, &ret);
}
int
TimerEvent::GetRemain()
{
return remain_timer(&m_ev);
}