![]() |
Contur 2
Educational OS kernel simulator
|
Unified I/O manager for files and socket-like resources. More...
#include <io_manager.h>
Public Member Functions | |
| IoManager (IFileSystem &fileSystem, DeviceManager &devices) | |
| Constructs an I/O manager bound to filesystem and device registry. | |
| ~IoManager () override | |
| Destroys the manager. | |
| IoManager (const IoManager &)=delete | |
| IoManager & | operator= (const IoManager &)=delete |
| IoManager (IoManager &&) noexcept | |
| IoManager & | operator= (IoManager &&) noexcept |
| Result< void > | registerFile (RegisterValue resourceId, std::string path, IoResourceKind kind) override |
| Registers a file resource ID to a filesystem path. | |
| Result< void > | registerSocket (RegisterValue resourceId, std::size_t capacity, IoResourceKind kind) override |
| Registers a socket resource ID. | |
| Result< IoDescriptor > | open (RegisterValue resourceId, IoResourceKind kind, OpenMode mode) override |
| Opens a resource and returns a kernel I/O descriptor. | |
| Result< void > | close (IoDescriptor fd) override |
| Closes a kernel I/O descriptor. | |
| Result< RegisterValue > | read (IoDescriptor fd, ProcessId pid) override |
| Reads one value from the descriptor. | |
| Result< void > | write (IoDescriptor fd, RegisterValue value) override |
| Writes one value to the descriptor. | |
| void | setWakeCallback (IoWakeCallback callback) override |
| Sets the wake callback invoked when I/O becomes ready. | |
| Public Member Functions inherited from contur::IIoManager | |
| virtual | ~IIoManager ()=default |
Private Attributes | |
| std::unique_ptr< Impl > | impl_ |
Unified I/O manager for files and socket-like resources.
Definition at line 16 of file io_manager.h.
| contur::IoManager::IoManager | ( | IFileSystem & | fileSystem, |
| DeviceManager & | devices ) |
Constructs an I/O manager bound to filesystem and device registry.
Referenced by IoManager(), IoManager(), operator=(), and operator=().
|
override |
Destroys the manager.
|
delete |
References IoManager().
|
noexcept |
References IoManager().
|
nodiscardoverridevirtual |
Closes a kernel I/O descriptor.
| fd | Descriptor to close. |
Implements contur::IIoManager.
References close().
Referenced by close().
|
nodiscardoverridevirtual |
Opens a resource and returns a kernel I/O descriptor.
| resourceId | Numeric resource identifier. |
| kind | Resource kind. |
| mode | Open mode flags (files only). |
Implements contur::IIoManager.
References open().
Referenced by open().
References IoManager().
References IoManager().
|
nodiscardoverridevirtual |
Reads one value from the descriptor.
| fd | Descriptor to read from. |
| pid | Requesting process id (for blocking waits). |
Implements contur::IIoManager.
References read().
Referenced by read().
|
nodiscardoverridevirtual |
Registers a file resource ID to a filesystem path.
| resourceId | Numeric resource identifier. |
| path | Absolute file path. |
| kind | File or LAN file resource kind. |
Implements contur::IIoManager.
References registerFile().
Referenced by registerFile().
|
nodiscardoverridevirtual |
Registers a socket resource ID.
| resourceId | Numeric resource identifier. |
| capacity | Maximum queued elements. |
| kind | Socket resource kind. |
Implements contur::IIoManager.
References registerSocket().
Referenced by registerSocket().
|
overridevirtual |
Sets the wake callback invoked when I/O becomes ready.
Implements contur::IIoManager.
References setWakeCallback().
Referenced by setWakeCallback().
|
nodiscardoverridevirtual |
Writes one value to the descriptor.
| fd | Descriptor to write to. |
| value | Value to write. |
Implements contur::IIoManager.
References write().
Referenced by write().
|
private |
Definition at line 55 of file io_manager.h.