1er commit
This commit is contained in:
41
include/misc/Time.h
Normal file
41
include/misc/Time.h
Normal file
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <functional>
|
||||
|
||||
namespace td {
|
||||
namespace utils {
|
||||
|
||||
std::uint64_t getTime();
|
||||
|
||||
|
||||
typedef std::function<void()> TimerExecFunction;
|
||||
|
||||
// utililty class to call function at regular period of time
|
||||
class Timer{
|
||||
private:
|
||||
std::uint64_t m_Interval;
|
||||
TimerExecFunction m_Function;
|
||||
|
||||
std::uint64_t m_LastTime = getTime();
|
||||
std::uint64_t m_InternalTime = 0;
|
||||
public:
|
||||
Timer() : m_Interval(0), m_Function(nullptr){}
|
||||
Timer(std::uint64_t interval) : m_Interval(interval), m_Function(nullptr){}
|
||||
Timer(std::uint64_t interval, TimerExecFunction callback) : m_Interval(interval), m_Function(callback){}
|
||||
|
||||
void update();
|
||||
void update(std::uint64_t delta);
|
||||
|
||||
void reset();
|
||||
|
||||
void setInterval(std::uint64_t newInterval){m_Interval = newInterval;}
|
||||
std::uint64_t getInterval() const{return m_Interval;}
|
||||
|
||||
void setCallbackFunction(TimerExecFunction newCallback){m_Function = newCallback;}
|
||||
TimerExecFunction getCallbackFunction() const{return m_Function;}
|
||||
};
|
||||
|
||||
|
||||
} // namespace utils
|
||||
} // namespace td
|
||||
Reference in New Issue
Block a user