|
contur2
|
Abstract execution engine interface. More...
#include <i_execution_engine.h>

Public Member Functions | |
| virtual | ~IExecutionEngine ()=default |
| virtual ExecutionResult | execute (ProcessImage &process, std::size_t tickBudget)=0 |
Executes the given process for up to tickBudget ticks. | |
| virtual void | halt (ProcessId pid)=0 |
| Forcibly halts execution of the given process. | |
| virtual std::string_view | name () const noexcept=0 |
| Returns the human-readable name of this engine. | |
Protected Member Functions | |
| IExecutionEngine ()=default | |
| IExecutionEngine (const IExecutionEngine &)=default | |
| IExecutionEngine & | operator= (const IExecutionEngine &)=default |
| IExecutionEngine (IExecutionEngine &&)=default | |
| IExecutionEngine & | operator= (IExecutionEngine &&)=default |
Abstract execution engine interface.
An execution engine takes a ProcessImage and runs it for up to tickBudget simulation ticks, returning an ExecutionResult that describes what happened (how many ticks were consumed, why execution stopped, etc.).
Implementations:
Definition at line 33 of file i_execution_engine.h.
|
virtualdefault |
|
protecteddefault |
|
protecteddefault |
|
protecteddefault |
|
nodiscardpure virtual |
Executes the given process for up to tickBudget ticks.
The engine runs the process until one of:
| process | The process image to execute (registers + code). |
| tickBudget | Maximum number of ticks (instructions) to execute. |
Implemented in contur::InterpreterEngine.
|
pure virtual |
Forcibly halts execution of the given process.
| pid | The process ID to halt. |
Implemented in contur::InterpreterEngine.
|
nodiscardpure virtualnoexcept |
Returns the human-readable name of this engine.
Implemented in contur::InterpreterEngine.
|
protecteddefault |
|
protecteddefault |