morph 0.1.0
Asynchronous bridge between GUI thread and business models
Loading...
Searching...
No Matches
morph::table::EngineOptions Struct Reference

How an engine runs and what it is given. More...

#include <engine.hpp>

Public Attributes

exec::IExecutor * owner = nullptr
 Where results are applied. Null: every computation runs inside the call that asks for it (what table::apply uses on a server).
exec::IExecutor * worker = nullptr
 Where jobs run off the owner. Null: jobs run in frame-budgeted steps posted to owner. Must outlive every job the engine starts.
std::size_t smallTable = 2000
 Tables with fewer rows compute on the owner in one step.
std::size_t resetThreshold = 5000
 A ViewChange with more operations than this is one Reset.
std::chrono::microseconds frameBudget {8000}
 The longest an owner step runs when there is no worker.
Services services
 Collator, date parser, comparators and progress sink.
ReorderPolicy reorder = ReorderPolicy::Immediate
 What an updated row that would move does.
std::chrono::milliseconds settle {500}
 The quiet interval after which deferred rows move.
std::function< void(std::chrono::milliseconds, std::function< void()>)> scheduleSettle
 Runs a callback on the owner after a delay; the engine uses it for the settle interval. Empty: deferred rows move only on settleNow() or endEdit().

Detailed Description

How an engine runs and what it is given.

Definition at line 76 of file engine.hpp.

Member Data Documentation

◆ owner

exec::IExecutor* morph::table::EngineOptions::owner = nullptr

Where results are applied. Null: every computation runs inside the call that asks for it (what table::apply uses on a server).

Definition at line 79 of file engine.hpp.

◆ worker

exec::IExecutor* morph::table::EngineOptions::worker = nullptr

Where jobs run off the owner. Null: jobs run in frame-budgeted steps posted to owner. Must outlive every job the engine starts.

Definition at line 82 of file engine.hpp.

◆ smallTable

std::size_t morph::table::EngineOptions::smallTable = 2000

Tables with fewer rows compute on the owner in one step.

Definition at line 84 of file engine.hpp.

◆ resetThreshold

std::size_t morph::table::EngineOptions::resetThreshold = 5000

A ViewChange with more operations than this is one Reset.

Definition at line 86 of file engine.hpp.

◆ frameBudget

std::chrono::microseconds morph::table::EngineOptions::frameBudget {8000}

The longest an owner step runs when there is no worker.

Definition at line 88 of file engine.hpp.

◆ services

Services morph::table::EngineOptions::services

Collator, date parser, comparators and progress sink.

Definition at line 90 of file engine.hpp.

◆ reorder

ReorderPolicy morph::table::EngineOptions::reorder = ReorderPolicy::Immediate

What an updated row that would move does.

Definition at line 92 of file engine.hpp.

◆ settle

std::chrono::milliseconds morph::table::EngineOptions::settle {500}

The quiet interval after which deferred rows move.

Definition at line 94 of file engine.hpp.

◆ scheduleSettle

std::function<void(std::chrono::milliseconds, std::function<void()>)> morph::table::EngineOptions::scheduleSettle

Runs a callback on the owner after a delay; the engine uses it for the settle interval. Empty: deferred rows move only on settleNow() or endEdit().

Definition at line 98 of file engine.hpp.


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