AUI Framework  master
Cross-platform module-based framework for developing C++20 desktop applications
AScheduler Class Reference

Basic scheduler used for timers. More...

Detailed Description

Basic scheduler used for timers.

Public Types

using TimerHandle = _weak< Timer >
 

Public Member Functions

bool iteration (ABitField< ASchedulerIteration > flag=ASchedulerIteration::NONE)
 Performs an iteration. More...
 
void notifyProcessMessages () override
 Notifies this IEventLoop that its thread got a new message to process. More...
 
void loop () override
 Do message processing loop. More...
 
template<typename Duration >
void enqueue (Duration timeout, std::function< void()> callback)
 
template<typename Duration >
TimerHandle timer (Duration timeout, std::function< void()> callback)
 Creates a timer. More...
 
void removeTimer (const TimerHandle &t)
 
bool emptyTasks () const noexcept
 
void stop ()
 

Member Function Documentation

◆ iteration()

bool AScheduler::iteration ( ABitField< ASchedulerIteration >  flag = ASchedulerIteration::NONE)

Performs an iteration.

Parameters
flagflags for the iteration. See ASchedulerIteration for more info.
Returns
true, if some action taken, false otherwise

◆ loop()

void AScheduler::loop ( )
overridevirtual

Do message processing loop.

Implements IEventLoop.

◆ notifyProcessMessages()

void AScheduler::notifyProcessMessages ( )
overridevirtual

Notifies this IEventLoop that its thread got a new message to process.

Implements IEventLoop.

◆ timer()

template<typename Duration >
TimerHandle AScheduler::timer ( Duration  timeout,
std::function< void()>  callback 
)
inline

Creates a timer.

Parameters
timeouttimeout (i.e. 500ms)
callbackcallback to be called
Returns
timer instance which can be used to remove the timer.

Creates a timer with the specified callback. The callback is not called immediately during timer creation.

#include <AUI/Util/AScheduler.h>


The documentation for this class was generated from the following files:
Inheritance diagram for AScheduler:
Collaboration diagram for AScheduler: