Serenity Operating System
1/*
2 * Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com>
3 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 */
7
8#include "WebSocketClientManagerLadybird.h"
9#include "WebSocketImplQt.h"
10#include "WebSocketLadybird.h"
11
12namespace Ladybird {
13
14NonnullRefPtr<WebSocketClientManagerLadybird> WebSocketClientManagerLadybird::create()
15{
16 return adopt_ref(*new WebSocketClientManagerLadybird());
17}
18
19WebSocketClientManagerLadybird::WebSocketClientManagerLadybird() = default;
20WebSocketClientManagerLadybird::~WebSocketClientManagerLadybird() = default;
21
22RefPtr<Web::WebSockets::WebSocketClientSocket> WebSocketClientManagerLadybird::connect(AK::URL const& url, DeprecatedString const& origin, Vector<DeprecatedString> const& protocols)
23{
24 WebSocket::ConnectionInfo connection_info(url);
25 connection_info.set_origin(origin);
26 connection_info.set_protocols(protocols);
27
28 auto impl = adopt_ref(*new WebSocketImplQt);
29 auto web_socket = WebSocket::WebSocket::create(move(connection_info), move(impl));
30 web_socket->start();
31 return WebSocketLadybird::create(web_socket);
32}
33
34}