/* * Copyright (c) 2023, Andrew Kaster * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::Bindings { // https://html.spec.whatwg.org/multipage/structured-data.html#transferable-objects class Transferable { public: virtual ~Transferable() = default; // NOTE: It is an error to call Base::transfer_steps in your impl virtual WebIDL::ExceptionOr transfer_steps(HTML::TransferDataHolder&) = 0; // NOTE: It is an error to call Base::transfer_receiving_steps in your impl virtual WebIDL::ExceptionOr transfer_receiving_steps(HTML::TransferDataHolder&) = 0; virtual HTML::TransferType primary_interface() const = 0; bool is_detached() const { return m_detached; } void set_detached(bool b) { m_detached = b; } private: // https://html.spec.whatwg.org/multipage/structured-data.html#detached bool m_detached = false; }; }