|
contur2
|
Concrete kernel facade. More...
#include <kernel.h>


Public Member Functions | |
| Kernel (KernelDependencies deps) | |
| ~Kernel () override | |
| Kernel (const Kernel &)=delete | |
| Kernel & | operator= (const Kernel &)=delete |
| Kernel (Kernel &&) noexcept | |
| Kernel & | operator= (Kernel &&) noexcept |
| Result< ProcessId > | createProcess (const ProcessConfig &config) override |
| Creates and admits a process. | |
| Result< void > | terminateProcess (ProcessId pid) override |
| Terminates a process immediately. | |
| Result< void > | tick (std::size_t tickBudget=0) override |
| Executes one dispatch cycle. | |
| Result< void > | runForTicks (std::size_t cycles, std::size_t tickBudget=0) override |
| Executes multiple dispatch cycles. | |
| Result< RegisterValue > | syscall (ProcessId pid, SyscallId id, std::span< const RegisterValue > args) override |
| Dispatches a syscall on behalf of a process. | |
| Result< void > | registerSyscallHandler (SyscallId id, SyscallHandlerFn handler) override |
| Registers or replaces syscall handler. | |
| Result< void > | registerSyncPrimitive (const std::string &name, std::unique_ptr< ISyncPrimitive > primitive) override |
| Registers a named synchronization primitive. | |
| Result< void > | enterCritical (ProcessId pid, std::string_view primitiveName) override |
| Acquires a named synchronization primitive. | |
| Result< void > | leaveCritical (ProcessId pid, std::string_view primitiveName) override |
| Releases a named synchronization primitive. | |
| KernelSnapshot | snapshot () const override |
| Returns a snapshot of current kernel state. | |
| Tick | now () const noexcept override |
| Returns current simulation time. | |
| bool | hasProcess (ProcessId pid) const noexcept override |
| Returns true when process exists in dispatcher. | |
| std::size_t | processCount () const noexcept override |
| Returns total managed process count. | |
| Public Member Functions inherited from contur::IKernel | |
| virtual | ~IKernel ()=default |
Private Attributes | |
| std::unique_ptr< Impl > | impl_ |
|
explicit |
|
override |
|
delete |
|
noexcept |
|
nodiscardoverridevirtual |
Creates and admits a process.
| config | Process configuration payload. |
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Acquires a named synchronization primitive.
Implements contur::IKernel.
|
nodiscardoverridevirtualnoexcept |
Returns true when process exists in dispatcher.
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Releases a named synchronization primitive.
Implements contur::IKernel.
|
nodiscardoverridevirtualnoexcept |
Returns current simulation time.
Implements contur::IKernel.
|
nodiscardoverridevirtualnoexcept |
Returns total managed process count.
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Registers a named synchronization primitive.
| name | Primitive name. |
| primitive | Primitive instance. |
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Registers or replaces syscall handler.
| id | Syscall identifier. |
| handler | Handler function. |
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Executes multiple dispatch cycles.
| cycles | Number of cycles to run. |
| tickBudget | Optional budget per cycle. 0 means kernel default. |
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Returns a snapshot of current kernel state.
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Dispatches a syscall on behalf of a process.
| pid | Calling process identifier. |
| id | Syscall identifier. |
| args | Syscall arguments. |
Implements contur::IKernel.
Terminates a process immediately.
| pid | Process identifier. |
Implements contur::IKernel.
|
nodiscardoverridevirtual |
Executes one dispatch cycle.
| tickBudget | Optional tick budget. 0 means kernel default. |
Implements contur::IKernel.