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

Default MVC controller implementation. More...

#include <i_tui_controller.h>

Inheritance diagram for contur::TuiController:

Public Types

using TickFn = std::function<Result<void>(std::size_t step)>
 Signature used by controller to advance kernel time.

Public Member Functions

 TuiController (const IKernelReadModel &readModel, TickFn tickFn, std::size_t historyCapacity=256)
 Constructs controller.
 ~TuiController () override
 Destroys controller.
 TuiController (const TuiController &)=delete
 Copy construction is disabled.
TuiControlleroperator= (const TuiController &)=delete
 Copy assignment is disabled.
 TuiController (TuiController &&) noexcept
 Move-constructs controller state.
TuiControlleroperator= (TuiController &&) noexcept
 Move-assigns controller state.
Result< void > dispatch (const TuiCommand &command) override
 Dispatches one controller command.
Result< void > advanceAutoplay (std::uint32_t elapsedMs) override
 Advances autoplay timer and executes due tick steps.
const TuiSnapshotcurrent () const noexcept override
 Returns current UI snapshot at history cursor.
TuiControllerState state () const noexcept override
 Returns current playback state.
std::size_t historySize () const noexcept override
 Returns retained history entry count.
std::size_t historyCursor () const noexcept override
 Returns current history cursor index.
Public Member Functions inherited from contur::ITuiController
virtual ~ITuiController ()=default
 Virtual destructor for interface-safe polymorphic cleanup.

Private Attributes

std::unique_ptr< Impl > impl_

Detailed Description

Default MVC controller implementation.

Definition at line 58 of file i_tui_controller.h.

Member Typedef Documentation

◆ TickFn

using contur::TuiController::TickFn = std::function<Result<void>(std::size_t step)>

Signature used by controller to advance kernel time.

Definition at line 62 of file i_tui_controller.h.

Constructor & Destructor Documentation

◆ TuiController() [1/3]

contur::TuiController::TuiController ( const IKernelReadModel & readModel,
TickFn tickFn,
std::size_t historyCapacity = 256 )

Constructs controller.

Parameters
readModelRead-model adapter for snapshot capture.
tickFnCallback that advances kernel by N ticks.
historyCapacityMax retained history entries (0 normalizes to 1).

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

◆ ~TuiController()

contur::TuiController::~TuiController ( )
override

Destroys controller.

◆ TuiController() [2/3]

contur::TuiController::TuiController ( const TuiController & )
delete

Copy construction is disabled.

References TuiController().

◆ TuiController() [3/3]

contur::TuiController::TuiController ( TuiController && )
noexcept

Move-constructs controller state.

References TuiController().

Member Function Documentation

◆ advanceAutoplay()

Result< void > contur::TuiController::advanceAutoplay ( std::uint32_t elapsedMs)
nodiscardoverridevirtual

Advances autoplay timer and executes due tick steps.

Parameters
elapsedMsElapsed wall-clock milliseconds since previous call.
Returns
Ok on success or propagated tick/read-model error.

Implements contur::ITuiController.

References advanceAutoplay().

Referenced by advanceAutoplay().

◆ current()

const TuiSnapshot & contur::TuiController::current ( ) const
nodiscardoverridevirtualnoexcept

Returns current UI snapshot at history cursor.

Implements contur::ITuiController.

References current().

Referenced by current().

◆ dispatch()

Result< void > contur::TuiController::dispatch ( const TuiCommand & command)
nodiscardoverridevirtual

Dispatches one controller command.

Parameters
commandCommand payload.
Returns
Ok on success or an error for invalid command/state.

Implements contur::ITuiController.

References dispatch().

Referenced by dispatch().

◆ historyCursor()

std::size_t contur::TuiController::historyCursor ( ) const
nodiscardoverridevirtualnoexcept

Returns current history cursor index.

Implements contur::ITuiController.

References historyCursor().

Referenced by historyCursor().

◆ historySize()

std::size_t contur::TuiController::historySize ( ) const
nodiscardoverridevirtualnoexcept

Returns retained history entry count.

Implements contur::ITuiController.

References historySize().

Referenced by historySize().

◆ operator=() [1/2]

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

Copy assignment is disabled.

References TuiController().

◆ operator=() [2/2]

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

Move-assigns controller state.

References TuiController().

◆ state()

TuiControllerState contur::TuiController::state ( ) const
nodiscardoverridevirtualnoexcept

Returns current playback state.

Implements contur::ITuiController.

References state().

Referenced by state().

Member Data Documentation

◆ impl_

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

Definition at line 105 of file i_tui_controller.h.


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