1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 19:47:34 +00:00

LibArchive: Port TarFileStream to Core::Stream

This commit is contained in:
Tim Schumacher 2022-11-28 15:57:44 +01:00 committed by Andreas Kling
parent 6e29619dcb
commit 71d1d9e2b5
3 changed files with 26 additions and 53 deletions

View file

@ -8,20 +8,20 @@
#pragma once
#include <AK/Span.h>
#include <AK/Stream.h>
#include <LibArchive/Tar.h>
#include <LibCore/Stream.h>
namespace Archive {
class TarInputStream;
class TarFileStream : public InputStream {
class TarFileStream : public Core::Stream::Stream {
public:
size_t read(Bytes) override;
bool unreliable_eof() const override;
bool read_or_error(Bytes) override;
bool discard_or_error(size_t count) override;
virtual ErrorOr<Bytes> read(Bytes) override;
virtual ErrorOr<size_t> write(ReadonlyBytes) override;
virtual bool is_eof() const override;
virtual bool is_open() const override { return true; };
virtual void close() override {};
private:
TarFileStream(TarInputStream& stream);
@ -77,7 +77,7 @@ inline ErrorOr<void> TarInputStream::for_each_extended_header(F func)
auto header_size = TRY(header().size());
ByteBuffer file_contents_buffer = TRY(ByteBuffer::create_zeroed(header_size));
VERIFY(file_stream.read(file_contents_buffer) == header_size);
VERIFY(TRY(file_stream.read(file_contents_buffer)).size() == header_size);
StringView file_contents { file_contents_buffer };