/* * Copyright (c) 2023, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace Web::Streams { // https://streams.spec.whatwg.org/#countqueuingstrategy class CountQueuingStrategy final : public Bindings::PlatformObject { WEB_PLATFORM_OBJECT(CountQueuingStrategy, Bindings::PlatformObject); GC_DECLARE_ALLOCATOR(CountQueuingStrategy); public: static GC::Ref construct_impl(JS::Realm&, QueuingStrategyInit const&); virtual ~CountQueuingStrategy() override; // https://streams.spec.whatwg.org/#cqs-high-water-mark double high_water_mark() const { // The highWaterMark getter steps are: // 1. Return this.[[highWaterMark]]. return m_high_water_mark; } GC::Ref size(); private: explicit CountQueuingStrategy(JS::Realm&, double high_water_mark); virtual void initialize(JS::Realm&) override; // https://streams.spec.whatwg.org/#countqueuingstrategy-highwatermark double m_high_water_mark { 0 }; }; }