Coverage Report

Created: 2026-02-14 08:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/AK/ConstrainedStream.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2021, Ali Mohammad Pur <mpfard@serenityos.org>
3
 * Copyright (c) 2023, Tim Schumacher <timschumi@gmx.de>
4
 *
5
 * SPDX-License-Identifier: BSD-2-Clause
6
 */
7
8
#pragma once
9
10
#include <AK/MaybeOwned.h>
11
#include <AK/Stream.h>
12
13
namespace AK {
14
15
class ConstrainedStream : public Stream {
16
public:
17
    ConstrainedStream(MaybeOwned<Stream>, u64 limit);
18
19
    virtual ErrorOr<Bytes> read_some(Bytes) override;
20
    virtual ErrorOr<void> discard(size_t discarded_bytes) override;
21
    virtual ErrorOr<size_t> write_some(ReadonlyBytes) override;
22
    virtual bool is_eof() const override;
23
    virtual bool is_open() const override;
24
    virtual void close() override;
25
1.86M
    u64 remaining() const { return m_limit; }
26
27
private:
28
    MaybeOwned<Stream> m_stream;
29
    u64 m_limit;
30
};
31
32
}