Serenity Operating System
at master 27 lines 560 B view raw
1/* 2 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/Forward.h> 10#include <LibWeb/Forward.h> 11 12namespace Web::Platform { 13 14class EventLoopPlugin { 15public: 16 static EventLoopPlugin& the(); 17 static void install(EventLoopPlugin&); 18 19 virtual ~EventLoopPlugin(); 20 21 virtual void spin_until(Function<bool()> goal_condition) = 0; 22 virtual void deferred_invoke(Function<void()>) = 0; 23 virtual NonnullRefPtr<Timer> create_timer() = 0; 24 virtual void quit() = 0; 25}; 26 27}