/* * Copyright (c) 2022, Dex♪ * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Protocol { class WebSocket; class WebSocketClient; }; namespace WebView { class WebSocketClientSocketAdapter : public Web::WebSockets::WebSocketClientSocket , public Weakable { public: static RefPtr create(NonnullRefPtr); virtual ~WebSocketClientSocketAdapter() override; virtual Web::WebSockets::WebSocket::ReadyState ready_state() override; virtual DeprecatedString subprotocol_in_use() override; virtual void send(ByteBuffer binary_or_text_message, bool is_text) override; virtual void send(StringView text_message) override; virtual void close(u16 code = 1005, DeprecatedString reason = {}) override; private: WebSocketClientSocketAdapter(NonnullRefPtr); NonnullRefPtr m_websocket; }; class WebSocketClientManagerAdapter : public Web::WebSockets::WebSocketClientManager { public: static ErrorOr> try_create(); virtual ~WebSocketClientManagerAdapter() override; virtual RefPtr connect(const AK::URL&, DeprecatedString const& origin, Vector const& protocols) override; private: WebSocketClientManagerAdapter(NonnullRefPtr); NonnullRefPtr m_websocket_client; }; }