Serenity Operating System
at master 55 lines 1.7 kB view raw
1/* 2 * Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/Error.h> 10#include <AK/NonnullRefPtr.h> 11#include <AK/Weakable.h> 12#include <LibWeb/WebSockets/WebSocket.h> 13 14namespace Protocol { 15class WebSocket; 16class WebSocketClient; 17}; 18 19namespace WebView { 20 21class WebSocketClientSocketAdapter 22 : public Web::WebSockets::WebSocketClientSocket 23 , public Weakable<WebSocketClientSocketAdapter> { 24public: 25 static RefPtr<WebSocketClientSocketAdapter> create(NonnullRefPtr<Protocol::WebSocket>); 26 virtual ~WebSocketClientSocketAdapter() override; 27 28 virtual Web::WebSockets::WebSocket::ReadyState ready_state() override; 29 virtual DeprecatedString subprotocol_in_use() override; 30 31 virtual void send(ByteBuffer binary_or_text_message, bool is_text) override; 32 virtual void send(StringView text_message) override; 33 virtual void close(u16 code = 1005, DeprecatedString reason = {}) override; 34 35private: 36 WebSocketClientSocketAdapter(NonnullRefPtr<Protocol::WebSocket>); 37 38 NonnullRefPtr<Protocol::WebSocket> m_websocket; 39}; 40 41class WebSocketClientManagerAdapter : public Web::WebSockets::WebSocketClientManager { 42public: 43 static ErrorOr<NonnullRefPtr<WebSocketClientManagerAdapter>> try_create(); 44 45 virtual ~WebSocketClientManagerAdapter() override; 46 47 virtual RefPtr<Web::WebSockets::WebSocketClientSocket> connect(const AK::URL&, DeprecatedString const& origin, Vector<DeprecatedString> const& protocols) override; 48 49private: 50 WebSocketClientManagerAdapter(NonnullRefPtr<Protocol::WebSocketClient>); 51 52 NonnullRefPtr<Protocol::WebSocketClient> m_websocket_client; 53}; 54 55}