tess 1.0.0
Performance-first tile and path simulation substrate
Loading...
Searching...
No Matches
tess::experimental::maintenance::MaintenanceScheduler Class Referenceabstract

Backend-neutral experimental maintenance scheduler interface. More...

#include <tess/experimental/maintenance.h>

Inheritance diagram for tess::experimental::maintenance::MaintenanceScheduler:
tess::experimental::maintenance::DirtyBitScheduler tess::experimental::maintenance::ImmediateScheduler

Public Member Functions

virtual auto schedule (MaintenanceTask &task) -> bool=0
virtual auto run_some (MaintenanceBudget budget) -> bool=0
virtual auto flush () -> bool=0
 Completes all reachable work; see the non-reentrant drain contract above.
virtual auto metrics () const noexcept -> MaintenanceMetrics=0
virtual auto has_pending () const noexcept -> bool=0

Detailed Description

Backend-neutral experimental maintenance scheduler interface.

Member Function Documentation

◆ flush()

virtual auto tess::experimental::maintenance::MaintenanceScheduler::flush ( ) -> bool
nodiscardpure virtual

Completes all reachable work; see the non-reentrant drain contract above.

Implemented in tess::experimental::maintenance::DirtyBitScheduler, and tess::experimental::maintenance::ImmediateScheduler.

◆ has_pending()

virtual auto tess::experimental::maintenance::MaintenanceScheduler::has_pending ( ) const -> bool
nodiscardpure virtualnoexcept

Returns whether this backend currently retains reachable work.

Implemented in tess::experimental::maintenance::DirtyBitScheduler, and tess::experimental::maintenance::ImmediateScheduler.

◆ run_some()

virtual auto tess::experimental::maintenance::MaintenanceScheduler::run_some ( MaintenanceBudget budget) -> bool
nodiscardpure virtual

Runs reachable work until the queue or supplied budget is exhausted.

Do not call this or flush() from MaintenanceTask::run(): queued backends serialize drains with a non-recursive lock. schedule() is the only reentrant scheduler operation supported from a running task.

Implemented in tess::experimental::maintenance::DirtyBitScheduler, and tess::experimental::maintenance::ImmediateScheduler.

◆ schedule()

virtual auto tess::experimental::maintenance::MaintenanceScheduler::schedule ( MaintenanceTask & task) -> bool
nodiscardpure virtual

Schedules derived-state work.

The task must outlive this scheduler or an explicit flush(). A false result reports bounded capacity exhaustion, incomplete backend setup, an unknown task identity, or a backend that cannot make progress; authoritative state must retain its dirty signal so a caller can retry.

Implemented in tess::experimental::maintenance::DirtyBitScheduler, and tess::experimental::maintenance::ImmediateScheduler.


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