Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
Timer.h
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#ifndef SKYFIRE_TIMER_H
7
#define SKYFIRE_TIMER_H
8
9
#include "
Common.h
"
10
#include "
Platform/TimeUtils.h
"
11
12
inline
uint32
getMSTime
()
13
{
14
return
Skyfire::GetMSTime
();
15
}
16
17
inline
uint32
getMSTimeDiff
(
uint32
oldMSTime,
uint32
newMSTime)
18
{
19
return
Skyfire::GetMSTimeDiff
(oldMSTime, newMSTime);
20
}
21
22
inline
uint32
GetMSTimeDiffToNow
(
uint32
oldMSTime)
23
{
24
return
Skyfire::GetMSTimeDiffToNow
(oldMSTime);
25
}
26
27
struct
IntervalTimer
28
{
29
public
:
30
IntervalTimer
() :
_interval
(0),
_current
(0) { }
31
32
void
Update
(time_t diff)
33
{
34
_current
+= diff;
35
if
(
_current
< 0)
36
_current
= 0;
37
}
38
39
bool
Passed
()
40
{
41
return
_current
>=
_interval
;
42
}
43
44
void
Reset
()
45
{
46
if
(
_current
>=
_interval
)
47
_current
%=
_interval
;
48
}
49
50
void
SetCurrent
(time_t current)
51
{
52
_current
= current;
53
}
54
55
void
SetInterval
(time_t interval)
56
{
57
_interval
= interval;
58
}
59
60
time_t
GetInterval
()
const
61
{
62
return
_interval
;
63
}
64
65
time_t
GetCurrent
()
const
66
{
67
return
_current
;
68
}
69
70
private
:
71
time_t
_interval
;
72
time_t
_current
;
73
};
74
75
struct
TimeTracker
76
{
77
public
:
78
TimeTracker
(time_t expiry) :
i_expiryTime
(expiry) { }
79
80
void
Update
(time_t diff)
81
{
82
i_expiryTime
-= diff;
83
}
84
85
bool
Passed
()
const
86
{
87
return
i_expiryTime
<= 0;
88
}
89
90
void
Reset
(time_t interval)
91
{
92
i_expiryTime
= interval;
93
}
94
95
time_t
GetExpiry
()
const
96
{
97
return
i_expiryTime
;
98
}
99
100
private
:
101
time_t
i_expiryTime
;
102
};
103
104
struct
TimeTrackerSmall
105
{
106
public
:
107
TimeTrackerSmall
(
uint32
expiry = 0) :
i_expiryTime
(expiry) { }
108
109
void
Update
(
int32
diff)
110
{
111
i_expiryTime
-= diff;
112
}
113
114
bool
Passed
()
const
115
{
116
return
i_expiryTime
<= 0;
117
}
118
119
void
Reset
(
uint32
interval)
120
{
121
i_expiryTime
= interval;
122
}
123
124
int32
GetExpiry
()
const
125
{
126
return
i_expiryTime
;
127
}
128
129
private
:
130
int32
i_expiryTime
;
131
};
132
133
struct
PeriodicTimer
134
{
135
public
:
136
PeriodicTimer
(
int32
period,
int32
start_time) :
i_period
(period),
i_expireTime
(start_time) { }
137
138
bool
Update
(
const
uint32
diff)
139
{
140
if
((
i_expireTime
-= diff) > 0)
141
return
false
;
142
143
i_expireTime
+=
i_period
>
int32
(diff) ?
i_period
: diff;
144
return
true
;
145
}
146
147
void
SetPeriodic
(
int32
period,
int32
start_time)
148
{
149
i_expireTime
= start_time;
150
i_period
= period;
151
}
152
153
// Tracker interface
154
void
TUpdate
(
int32
diff) {
i_expireTime
-= diff; }
155
bool
TPassed
()
const
{
return
i_expireTime
<= 0; }
156
void
TReset
(
int32
diff,
int32
period) {
i_expireTime
+= period > diff ? period : diff; }
157
158
private
:
159
int32
i_period
;
160
int32
i_expireTime
;
161
};
162
163
#endif
Common.h
int32
std::int32_t int32
Definition
Define.h:73
uint32
std::uint32_t uint32
Definition
Define.h:77
TimeUtils.h
GetMSTimeDiffToNow
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition
Timer.h:22
getMSTime
uint32 getMSTime()
Definition
Timer.h:12
getMSTimeDiff
uint32 getMSTimeDiff(uint32 oldMSTime, uint32 newMSTime)
Definition
Timer.h:17
Skyfire::GetMSTime
uint32 GetMSTime()
Definition
TimeUtils.h:17
Skyfire::GetMSTimeDiff
uint32 GetMSTimeDiff(uint32 oldMSTime, uint32 newMSTime)
Definition
TimeUtils.h:24
Skyfire::GetMSTimeDiffToNow
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition
TimeUtils.h:32
IntervalTimer::IntervalTimer
IntervalTimer()
Definition
Timer.h:30
IntervalTimer::_interval
time_t _interval
Definition
Timer.h:71
IntervalTimer::SetInterval
void SetInterval(time_t interval)
Definition
Timer.h:55
IntervalTimer::GetCurrent
time_t GetCurrent() const
Definition
Timer.h:65
IntervalTimer::GetInterval
time_t GetInterval() const
Definition
Timer.h:60
IntervalTimer::_current
time_t _current
Definition
Timer.h:72
IntervalTimer::Passed
bool Passed()
Definition
Timer.h:39
IntervalTimer::Update
void Update(time_t diff)
Definition
Timer.h:32
IntervalTimer::SetCurrent
void SetCurrent(time_t current)
Definition
Timer.h:50
IntervalTimer::Reset
void Reset()
Definition
Timer.h:44
PeriodicTimer::TUpdate
void TUpdate(int32 diff)
Definition
Timer.h:154
PeriodicTimer::TPassed
bool TPassed() const
Definition
Timer.h:155
PeriodicTimer::Update
bool Update(const uint32 diff)
Definition
Timer.h:138
PeriodicTimer::i_period
int32 i_period
Definition
Timer.h:159
PeriodicTimer::i_expireTime
int32 i_expireTime
Definition
Timer.h:160
PeriodicTimer::PeriodicTimer
PeriodicTimer(int32 period, int32 start_time)
Definition
Timer.h:136
PeriodicTimer::SetPeriodic
void SetPeriodic(int32 period, int32 start_time)
Definition
Timer.h:147
PeriodicTimer::TReset
void TReset(int32 diff, int32 period)
Definition
Timer.h:156
TimeTracker::Update
void Update(time_t diff)
Definition
Timer.h:80
TimeTracker::TimeTracker
TimeTracker(time_t expiry)
Definition
Timer.h:78
TimeTracker::Reset
void Reset(time_t interval)
Definition
Timer.h:90
TimeTracker::Passed
bool Passed() const
Definition
Timer.h:85
TimeTracker::GetExpiry
time_t GetExpiry() const
Definition
Timer.h:95
TimeTracker::i_expiryTime
time_t i_expiryTime
Definition
Timer.h:101
TimeTrackerSmall::GetExpiry
int32 GetExpiry() const
Definition
Timer.h:124
TimeTrackerSmall::i_expiryTime
int32 i_expiryTime
Definition
Timer.h:130
TimeTrackerSmall::Reset
void Reset(uint32 interval)
Definition
Timer.h:119
TimeTrackerSmall::Update
void Update(int32 diff)
Definition
Timer.h:109
TimeTrackerSmall::TimeTrackerSmall
TimeTrackerSmall(uint32 expiry=0)
Definition
Timer.h:107
TimeTrackerSmall::Passed
bool Passed() const
Definition
Timer.h:114
src
server
shared
Utilities
Timer.h
Generated on
for Project SkyFire Core by
1.17.0