Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
Engine::Core::TimerManager Class Reference

#include <TimerManager.h>

Collaboration diagram for Engine::Core::TimerManager:

Classes

struct  TimerEvent
struct  TimerHandle

Public Types

using Callback = std::function<void()>

Public Member Functions

 TimerManager ()=default
 TimerManager (EngineKern *engine)
TimerHandle setTimer (double delaySeconds, Callback callback)
TimerHandle setActorTimer (Entities::Actor *owner, double delaySeconds, std::function< void(Entities::Actor &)> callback)
void cancelTimer (TimerHandle handle)
void cancelTimersFor (const Entities::Actor *owner)
void clear ()
void tick (double nowSeconds)

Private Member Functions

double getCurrentTimeSeconds () const
bool isEventStillValid (const TimerEvent &event) const
void insertTimer (TimerEvent event)

Private Attributes

EngineKernengine_ = nullptr
std::vector< TimerEventtimers_
uint64_t nextTimerId_ = 1
double currentTimeSeconds_ = 0.0

Detailed Description

Definition at line 21 of file TimerManager.h.

Member Typedef Documentation

◆ Callback

using Engine::Core::TimerManager::Callback = std::function<void()>

Definition at line 34 of file TimerManager.h.

Constructor & Destructor Documentation

◆ TimerManager() [1/2]

Engine::Core::TimerManager::TimerManager ( )
default

◆ TimerManager() [2/2]

Engine::Core::TimerManager::TimerManager ( EngineKern * engine)
explicit

Member Function Documentation

◆ cancelTimer()

void Engine::Core::TimerManager::cancelTimer ( TimerHandle handle)

◆ cancelTimersFor()

void Engine::Core::TimerManager::cancelTimersFor ( const Entities::Actor * owner)

◆ clear()

void Engine::Core::TimerManager::clear ( )

◆ getCurrentTimeSeconds()

double Engine::Core::TimerManager::getCurrentTimeSeconds ( ) const
nodiscardprivate

◆ insertTimer()

void Engine::Core::TimerManager::insertTimer ( TimerEvent event)
private

◆ isEventStillValid()

bool Engine::Core::TimerManager::isEventStillValid ( const TimerEvent & event) const
nodiscardprivate

◆ setActorTimer()

TimerHandle Engine::Core::TimerManager::setActorTimer ( Entities::Actor * owner,
double delaySeconds,
std::function< void(Entities::Actor &)> callback )

◆ setTimer()

TimerHandle Engine::Core::TimerManager::setTimer ( double delaySeconds,
Callback callback )

◆ tick()

void Engine::Core::TimerManager::tick ( double nowSeconds)

Member Data Documentation

◆ currentTimeSeconds_

double Engine::Core::TimerManager::currentTimeSeconds_ = 0.0
private

Definition at line 69 of file TimerManager.h.

◆ engine_

EngineKern* Engine::Core::TimerManager::engine_ = nullptr
private

Definition at line 66 of file TimerManager.h.

◆ nextTimerId_

uint64_t Engine::Core::TimerManager::nextTimerId_ = 1
private

Definition at line 68 of file TimerManager.h.

◆ timers_

std::vector<TimerEvent> Engine::Core::TimerManager::timers_
private

Definition at line 67 of file TimerManager.h.


The documentation for this class was generated from the following file:
  • /home/magerbeton/Documents/gl3-vulkan/Engine/include/Engine/Core/TimerManager.h