/* * Copyright (c) 2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace DevTools { class DEVTOOLS_API Connection : public RefCounted , public Weakable { public: static NonnullRefPtr create(NonnullOwnPtr); ~Connection(); Function on_connection_closed; Function on_message_received; void send_message(JsonValue const&); private: explicit Connection(NonnullOwnPtr); ErrorOr on_ready_to_read(); ErrorOr read_available_data(); ErrorOr> read_message(); NonnullOwnPtr m_socket; ByteBuffer m_incoming_buffer; }; }