1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:37:35 +00:00

Streams: Distinguish recoverable and fatal errors.

This commit is contained in:
asynts 2020-08-31 13:12:15 +02:00 committed by Andreas Kling
parent daeb2bdc60
commit 9ce4475907
9 changed files with 75 additions and 59 deletions

View file

@ -63,7 +63,7 @@ public:
while (nread < bytes.size() && !eof()) {
if (m_file->has_error()) {
m_error = true;
set_fatal_error();
return 0;
}
@ -77,7 +77,7 @@ public:
bool read_or_error(Bytes bytes) override
{
if (read(bytes) < bytes.size()) {
m_error = true;
set_fatal_error();
return false;
}
@ -93,7 +93,7 @@ public:
ndiscarded += read({ buffer, min<size_t>(count - ndiscarded, sizeof(buffer)) });
if (eof()) {
m_error = true;
set_fatal_error();
return false;
}
@ -116,7 +116,7 @@ public:
void close()
{
if (!m_file->close())
m_error = true;
set_fatal_error();
}
private:
@ -153,7 +153,7 @@ public:
size_t write(ReadonlyBytes bytes) override
{
if (!m_file->write(bytes.data(), bytes.size())) {
m_error = true;
set_fatal_error();
return 0;
}
@ -163,7 +163,7 @@ public:
bool write_or_error(ReadonlyBytes bytes) override
{
if (write(bytes) < bytes.size()) {
m_error = true;
set_fatal_error();
return false;
}
@ -173,7 +173,7 @@ public:
void close()
{
if (!m_file->close())
m_error = true;
set_fatal_error();
}
private: