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

LibArchive: Use Core::Stream inside TarInputStream

This commit is contained in:
Tim Schumacher 2022-11-28 18:42:45 +01:00 committed by Andreas Kling
parent 71d1d9e2b5
commit cbeaba0c12
4 changed files with 95 additions and 59 deletions

View file

@ -33,9 +33,9 @@ private:
class TarInputStream {
public:
TarInputStream(InputStream&);
static ErrorOr<NonnullOwnPtr<TarInputStream>> construct(NonnullOwnPtr<Core::Stream::Stream>);
ErrorOr<void> advance();
bool finished() const { return m_finished; }
bool finished() const { return m_stream->is_eof(); }
bool valid() const;
TarFileHeader const& header() const { return m_header; }
TarFileStream file_contents();
@ -44,11 +44,12 @@ public:
ErrorOr<void> for_each_extended_header(F func);
private:
TarInputStream(NonnullOwnPtr<Core::Stream::Stream>);
TarFileHeader m_header;
InputStream& m_stream;
NonnullOwnPtr<Core::Stream::Stream> m_stream;
unsigned long m_file_offset { 0 };
int m_generation { 0 };
bool m_finished { false };
friend class TarFileStream;
};