1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 03:57:44 +00:00

LibCore: Use ErrorOr<T> for Core::File::open()

This commit is contained in:
Andreas Kling 2021-11-07 02:15:10 +01:00
parent fac2550143
commit a7f1f1c34b
24 changed files with 42 additions and 48 deletions

View file

@ -9,6 +9,7 @@
#include <AK/Buffered.h>
#include <AK/ByteBuffer.h>
#include <AK/Stream.h>
#include <AK/Try.h>
#include <LibCore/File.h>
namespace Core {
@ -20,28 +21,18 @@ public:
{
}
static Result<InputFileStream, OSError> open(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644)
static ErrorOr<InputFileStream> open(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644)
{
VERIFY(has_flag(mode, OpenMode::ReadOnly));
auto file_result = File::open(filename, mode, permissions);
if (file_result.is_error())
return file_result.error();
return InputFileStream { file_result.value() };
auto file = TRY(File::open(filename, mode, permissions));
return InputFileStream { move(file) };
}
static Result<Buffered<InputFileStream>, OSError> open_buffered(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644)
static ErrorOr<Buffered<InputFileStream>> open_buffered(StringView filename, OpenMode mode = OpenMode::ReadOnly, mode_t permissions = 0644)
{
VERIFY(has_flag(mode, OpenMode::ReadOnly));
auto file_result = File::open(filename, mode, permissions);
if (file_result.is_error())
return file_result.error();
return Buffered<InputFileStream> { file_result.value() };
auto file = TRY(File::open(filename, mode, permissions));
return Buffered<InputFileStream> { move(file) };
}
size_t read(Bytes bytes) override
@ -89,28 +80,18 @@ public:
{
}
static Result<OutputFileStream, OSError> open(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644)
static ErrorOr<OutputFileStream> open(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644)
{
VERIFY(has_flag(mode, OpenMode::WriteOnly));
auto file_result = File::open(filename, mode, permissions);
if (file_result.is_error())
return file_result.error();
return OutputFileStream { file_result.value() };
auto file = TRY(File::open(filename, mode, permissions));
return OutputFileStream { move(file) };
}
static Result<Buffered<OutputFileStream>, OSError> open_buffered(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644)
static ErrorOr<Buffered<OutputFileStream>> open_buffered(StringView filename, OpenMode mode = OpenMode::WriteOnly, mode_t permissions = 0644)
{
VERIFY(has_flag(mode, OpenMode::WriteOnly));
auto file_result = File::open(filename, mode, permissions);
if (file_result.is_error())
return file_result.error();
return Buffered<OutputFileStream> { file_result.value() };
auto file = TRY(File::open(filename, mode, permissions));
return Buffered<OutputFileStream> { move(file) };
}
static OutputFileStream standard_output()