/* * Copyright (c) 2024, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::Fetch::Fetching { class FetchedDataReceiver final : public JS::Cell { GC_CELL(FetchedDataReceiver, JS::Cell); GC_DECLARE_ALLOCATOR(FetchedDataReceiver); public: virtual ~FetchedDataReceiver() override; void set_pending_promise(GC::Ref); void on_data_received(ReadonlyBytes); private: FetchedDataReceiver(GC::Ref, GC::Ref); virtual void visit_edges(Visitor& visitor) override; GC::Ref m_fetch_params; GC::Ref m_stream; GC::Ptr m_pending_promise; ByteBuffer m_buffer; }; }