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

LibCore+Tests: Add SeekableStream::truncate()

This commit is contained in:
Sam Atkins 2022-02-03 19:21:51 +00:00 committed by Tim Flynn
parent d9fb1b8c2e
commit 4d5080388a
4 changed files with 27 additions and 0 deletions

View file

@ -81,6 +81,9 @@ public:
/// Returns the total size of the stream, or an errno in the case of an
/// error. May not preserve the original position on the stream on failure.
virtual ErrorOr<off_t> size();
/// Shrinks or extends the stream to the given size. Returns an errno in
/// the case of an error.
virtual ErrorOr<void> truncate(off_t length) = 0;
};
/// The Socket class is the base class for all concrete BSD-style socket
@ -197,6 +200,7 @@ public:
virtual bool is_open() const override;
virtual void close() override;
virtual ErrorOr<off_t> seek(i64 offset, SeekMode) override;
virtual ErrorOr<void> truncate(off_t length) override;
virtual ~File() override { close(); }
@ -757,6 +761,10 @@ public:
m_helper.clear_buffer();
return result;
}
virtual ErrorOr<void> truncate(off_t length) override
{
return m_helper.stream().truncate(length);
}
ErrorOr<size_t> read_line(Bytes buffer) { return m_helper.read_line(move(buffer)); }
ErrorOr<size_t> read_until(Bytes buffer, StringView candidate) { return m_helper.read_until(move(buffer), move(candidate)); }