Aria 2.0.0
C++23 MVVM framework (C++20 minimum) — reactive, coroutine-first, ABI-layered
Loading...
Searching...
No Matches
aria::runtime::DispatcherScheduler Class Referencefinal

IDelayedScheduler backed by IDispatcher::post_delayed. More...

#include <dispatcher_executor.hpp>

Inheritance diagram for aria::runtime::DispatcherScheduler:
[legend]

Public Member Functions

 DispatcherScheduler (IDispatcher &d) noexcept
void post_after (std::chrono::milliseconds delay, std::function< void()> fn) override
 Legacy / canonical timer entry point.
bool is_main_thread () const noexcept override
 True iff the calling thread is the scheduler's "main" thread.
aria::SchedulerCaps caps () const noexcept override
 Capability bitmask.
void schedule (std::function< void()> fn) override
 Submit fn for execution "soon". Defines Caps::Post.
void schedule_after (std::chrono::milliseconds delay, std::function< void()> fn) override
 Submit fn for execution after delay.
Public Member Functions inherited from aria::IDelayedScheduler
 ~IDelayedScheduler () override
SchedulerCaps caps () const noexcept override
 Capability bitmask.
void schedule (std::function< void()> fn) override
 Submit fn for execution "soon". Defines Caps::Post.
void schedule_after (std::chrono::milliseconds delay, std::function< void()> fn) override
 Submit fn for execution after delay.
Public Member Functions inherited from aria::IScheduler
virtual ~IScheduler ()=default

Detailed Description

IDelayedScheduler backed by IDispatcher::post_delayed.

Use case: reactive operators (debounce / throttle) that need a platform-integrated timer rather than a thread-pool sleep.

Constructor & Destructor Documentation

◆ DispatcherScheduler()

aria::runtime::DispatcherScheduler::DispatcherScheduler ( IDispatcher & d)
inlineexplicitnoexcept

Member Function Documentation

◆ post_after()

void aria::runtime::DispatcherScheduler::post_after ( std::chrono::milliseconds delay,
std::function< void()> fn )
inlineoverridevirtual

Legacy / canonical timer entry point.

Implementations override this; the unified IScheduler::schedule_after is wired to it below.

Implements aria::IDelayedScheduler.

◆ is_main_thread()

bool aria::runtime::DispatcherScheduler::is_main_thread ( ) const
inlinenodiscardoverridevirtualnoexcept

True iff the calling thread is the scheduler's "main" thread.

Default returns false; implementations advertising Caps::MainThread SHOULD override with a meaningful answer.

Reimplemented from aria::IScheduler.

◆ caps()

aria::SchedulerCaps aria::runtime::DispatcherScheduler::caps ( ) const
inlinenodiscardoverridevirtualnoexcept

Capability bitmask.

Implementations should return a constant value (or at least a value stable across the object's lifetime).

Implements aria::IScheduler.

◆ schedule()

void aria::runtime::DispatcherScheduler::schedule ( std::function< void()> fn)
inlineoverridevirtual

Submit fn for execution "soon". Defines Caps::Post.

Implements aria::IScheduler.

◆ schedule_after()

void aria::runtime::DispatcherScheduler::schedule_after ( std::chrono::milliseconds delay,
std::function< void()> fn )
inlineoverridevirtual

Submit fn for execution after delay.

Default implementation throws unsupported_capability; implementations that advertise Caps::Delay MUST override.

Reimplemented from aria::IScheduler.


The documentation for this class was generated from the following file: