23 explicit SimpleFS(std::size_t totalBlocks = 256, std::size_t blockSize = 512);
57 [[nodiscard]]
Result<
void>
mkdir(const std::
string &path) override;
62 [[nodiscard]]
Result<
void>
remove(const std::
string &path) override;
Abstract file-system interface.
A result type that holds either a success value of type T or an ErrorCode.
Result< void > mkdir(const std::string &path) override
Creates a directory at path.
Result< void > remove(const std::string &path) override
Removes file or empty directory at path.
Result< std::size_t > read(FileDescriptor fd, std::span< std::byte > buffer) override
Reads bytes from descriptor into buffer.
SimpleFS & operator=(const SimpleFS &)=delete
Result< FileDescriptor > open(const std::string &path, OpenMode mode) override
Opens file path with requested mode.
Result< InodeInfo > stat(const std::string &path) const override
Returns metadata for path.
Result< void > close(FileDescriptor fd) override
Closes open descriptor.
Result< std::size_t > write(FileDescriptor fd, std::span< const std::byte > data) override
Writes bytes from data into descriptor stream.
Result< std::vector< DirectoryEntry > > listDir(const std::string &path) const override
Lists child entries in directory.
std::unique_ptr< Impl > impl_
SimpleFS(const SimpleFS &)=delete
SimpleFS(SimpleFS &&) noexcept
SimpleFS(std::size_t totalBlocks=256, std::size_t blockSize=512)
Constructs filesystem over simulated disk blocks.
IFileSystem interface for file-system operations.
OpenMode
Open mode bit flags.
One child entry in a directory.
Descriptor handle returned by open().
Public inode metadata returned by stat().