WebSocketClientAdapter.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2022, Dex♪ <dexes.ttp@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/Error.h>
  8. #include <AK/NonnullRefPtr.h>
  9. #include <AK/Weakable.h>
  10. #include <LibWeb/WebSockets/WebSocket.h>
  11. namespace Protocol {
  12. class WebSocket;
  13. class RequestClient;
  14. };
  15. namespace WebView {
  16. class WebSocketClientSocketAdapter
  17. : public Web::WebSockets::WebSocketClientSocket
  18. , public Weakable<WebSocketClientSocketAdapter> {
  19. public:
  20. static RefPtr<WebSocketClientSocketAdapter> create(NonnullRefPtr<Protocol::WebSocket>);
  21. virtual ~WebSocketClientSocketAdapter() override;
  22. virtual Web::WebSockets::WebSocket::ReadyState ready_state() override;
  23. virtual ByteString subprotocol_in_use() override;
  24. virtual void send(ByteBuffer binary_or_text_message, bool is_text) override;
  25. virtual void send(StringView text_message) override;
  26. virtual void close(u16 code = 1005, ByteString reason = {}) override;
  27. private:
  28. WebSocketClientSocketAdapter(NonnullRefPtr<Protocol::WebSocket>);
  29. NonnullRefPtr<Protocol::WebSocket> m_websocket;
  30. };
  31. }