diff --git a/src/ox/fs/filesystem/filesystem.cpp b/src/ox/fs/filesystem/filesystem.cpp index d551f396b..b566db633 100644 --- a/src/ox/fs/filesystem/filesystem.cpp +++ b/src/ox/fs/filesystem/filesystem.cpp @@ -6,6 +6,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include + #include "filesystem.hpp" namespace ox { @@ -34,6 +36,13 @@ Error FileSystem::read(FileAddress addr, void *buffer, std::size_t size) noexcep } } +Result> FileSystem::read(FileAddress addr) noexcept { + oxRequire(s, stat(addr)); + ox::Vector buff(s.size); + oxReturnError(read(addr, buff.data(), buff.size())); + return ox::move(buff); +} + Error FileSystem::read(FileAddress addr, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept { switch (addr.type()) { case FileAddressType::Inode: diff --git a/src/ox/fs/filesystem/filesystem.hpp b/src/ox/fs/filesystem/filesystem.hpp index aaf52210c..8a4433390 100644 --- a/src/ox/fs/filesystem/filesystem.hpp +++ b/src/ox/fs/filesystem/filesystem.hpp @@ -42,6 +42,8 @@ class FileSystem { Error read(FileAddress addr, void *buffer, std::size_t size) noexcept; + Result> read(FileAddress addr) noexcept; + Error read(FileAddress addr, std::size_t readStart, std::size_t readSize, void *buffer, std::size_t *size) noexcept; Result directAccess(FileAddress addr) noexcept;