/* * Copyright (c) 2023, Tim Schumacher * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace AK { class CountingStream : public Stream { public: CountingStream(MaybeOwned); u64 read_bytes() const; virtual ErrorOr read_some(Bytes) override; virtual ErrorOr discard(size_t discarded_bytes) override; virtual ErrorOr write_some(ReadonlyBytes) override; virtual bool is_eof() const override; virtual bool is_open() const override; virtual void close() override; private: MaybeOwned m_stream; u64 m_read_bytes { 0 }; }; }