Project SkyFire Core
SkyFire 5.4.8 server core API documentation
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
13{
14 return Skyfire::GetMSTime();
15}
16
17inline uint32 getMSTimeDiff(uint32 oldMSTime, uint32 newMSTime)
18{
19 return Skyfire::GetMSTimeDiff(oldMSTime, newMSTime);
20}
21
23{
24 return Skyfire::GetMSTimeDiffToNow(oldMSTime);
25}
26
28{
29public:
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)
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
70private:
71 time_t _interval;
72 time_t _current;
73};
74
76{
77public:
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
100private:
102};
103
105{
106public:
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
125 {
126 return i_expiryTime;
127 }
128
129private:
131};
132
134{
135public:
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
158private:
161};
162
163#endif
std::int32_t int32
Definition Define.h:73
std::uint32_t uint32
Definition Define.h:77
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition Timer.h:22
uint32 getMSTime()
Definition Timer.h:12
uint32 getMSTimeDiff(uint32 oldMSTime, uint32 newMSTime)
Definition Timer.h:17
uint32 GetMSTime()
Definition TimeUtils.h:17
uint32 GetMSTimeDiff(uint32 oldMSTime, uint32 newMSTime)
Definition TimeUtils.h:24
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Definition TimeUtils.h:32
IntervalTimer()
Definition Timer.h:30
time_t _interval
Definition Timer.h:71
void SetInterval(time_t interval)
Definition Timer.h:55
time_t GetCurrent() const
Definition Timer.h:65
time_t GetInterval() const
Definition Timer.h:60
time_t _current
Definition Timer.h:72
bool Passed()
Definition Timer.h:39
void Update(time_t diff)
Definition Timer.h:32
void SetCurrent(time_t current)
Definition Timer.h:50
void Reset()
Definition Timer.h:44
void TUpdate(int32 diff)
Definition Timer.h:154
bool TPassed() const
Definition Timer.h:155
bool Update(const uint32 diff)
Definition Timer.h:138
int32 i_period
Definition Timer.h:159
int32 i_expireTime
Definition Timer.h:160
PeriodicTimer(int32 period, int32 start_time)
Definition Timer.h:136
void SetPeriodic(int32 period, int32 start_time)
Definition Timer.h:147
void TReset(int32 diff, int32 period)
Definition Timer.h:156
void Update(time_t diff)
Definition Timer.h:80
TimeTracker(time_t expiry)
Definition Timer.h:78
void Reset(time_t interval)
Definition Timer.h:90
bool Passed() const
Definition Timer.h:85
time_t GetExpiry() const
Definition Timer.h:95
time_t i_expiryTime
Definition Timer.h:101
int32 GetExpiry() const
Definition Timer.h:124
int32 i_expiryTime
Definition Timer.h:130
void Reset(uint32 interval)
Definition Timer.h:119
void Update(int32 diff)
Definition Timer.h:109
TimeTrackerSmall(uint32 expiry=0)
Definition Timer.h:107
bool Passed() const
Definition Timer.h:114