Contur 2
Educational OS kernel simulator
Loading...
Searching...
No Matches
contur::SerialDispatchRuntime Class Referencefinal

Serial runtime strategy that executes dispatcher lanes on the caller thread. More...

#include <serial_dispatch_runtime.h>

Inheritance diagram for contur::SerialDispatchRuntime:

Public Member Functions

 SerialDispatchRuntime (HostThreadingConfig config={})
 Constructs serial runtime with runtime-owned config.
 ~SerialDispatchRuntime () override
 Destroys serial runtime.
 SerialDispatchRuntime (const SerialDispatchRuntime &)=delete
 Copy construction is disabled.
SerialDispatchRuntimeoperator= (const SerialDispatchRuntime &)=delete
 Copy assignment is disabled.
 SerialDispatchRuntime (SerialDispatchRuntime &&) noexcept
 Move-constructs serial runtime state.
SerialDispatchRuntimeoperator= (SerialDispatchRuntime &&) noexcept
 Move-assigns serial runtime state.
std::string_view name () const noexcept override
 Returns runtime implementation name.
const HostThreadingConfigconfig () const noexcept override
 Returns runtime-owned threading config.
Result< void > dispatch (const DispatcherLanes &lanes, std::size_t tickBudget) override
 Runs one serial dispatch pass across all lanes.
void tick (const DispatcherLanes &lanes) override
 Ticks all lanes serially.
Public Member Functions inherited from contur::IDispatchRuntime
virtual ~IDispatchRuntime ()=default

Private Attributes

std::unique_ptr< Impl > impl_

Detailed Description

Serial runtime strategy that executes dispatcher lanes on the caller thread.

Definition at line 13 of file serial_dispatch_runtime.h.

Constructor & Destructor Documentation

◆ SerialDispatchRuntime() [1/3]

contur::SerialDispatchRuntime::SerialDispatchRuntime ( HostThreadingConfig config = {})
explicit

Constructs serial runtime with runtime-owned config.

Parameters
configRuntime threading config (normalized to serial-safe invariants).

References config().

Referenced by operator=(), operator=(), SerialDispatchRuntime(), and SerialDispatchRuntime().

◆ ~SerialDispatchRuntime()

contur::SerialDispatchRuntime::~SerialDispatchRuntime ( )
override

Destroys serial runtime.

◆ SerialDispatchRuntime() [2/3]

contur::SerialDispatchRuntime::SerialDispatchRuntime ( const SerialDispatchRuntime & )
delete

Copy construction is disabled.

References SerialDispatchRuntime().

◆ SerialDispatchRuntime() [3/3]

contur::SerialDispatchRuntime::SerialDispatchRuntime ( SerialDispatchRuntime && )
noexcept

Move-constructs serial runtime state.

References SerialDispatchRuntime().

Member Function Documentation

◆ config()

const HostThreadingConfig & contur::SerialDispatchRuntime::config ( ) const
nodiscardoverridevirtualnoexcept

Returns runtime-owned threading config.

Implements contur::IDispatchRuntime.

References config().

Referenced by config(), and SerialDispatchRuntime().

◆ dispatch()

Result< void > contur::SerialDispatchRuntime::dispatch ( const DispatcherLanes & lanes,
std::size_t tickBudget )
nodiscardoverridevirtual

Runs one serial dispatch pass across all lanes.

Implements contur::IDispatchRuntime.

References dispatch().

Referenced by dispatch().

◆ name()

std::string_view contur::SerialDispatchRuntime::name ( ) const
nodiscardoverridevirtualnoexcept

Returns runtime implementation name.

Implements contur::IDispatchRuntime.

References name().

Referenced by name().

◆ operator=() [1/2]

SerialDispatchRuntime & contur::SerialDispatchRuntime::operator= ( const SerialDispatchRuntime & )
delete

Copy assignment is disabled.

References SerialDispatchRuntime().

◆ operator=() [2/2]

SerialDispatchRuntime & contur::SerialDispatchRuntime::operator= ( SerialDispatchRuntime && )
noexcept

Move-assigns serial runtime state.

References SerialDispatchRuntime().

◆ tick()

void contur::SerialDispatchRuntime::tick ( const DispatcherLanes & lanes)
overridevirtual

Ticks all lanes serially.

Implements contur::IDispatchRuntime.

References tick().

Referenced by tick().

Member Data Documentation

◆ impl_

std::unique_ptr<Impl> contur::SerialDispatchRuntime::impl_
private

Definition at line 48 of file serial_dispatch_runtime.h.


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