LeviLamina
Loading...
Searching...
No Matches
WebSocket.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/http/StatusCode.h"
7#include "mc/deps/core/threading/Async.h"
8#include "mc/deps/core/threading/AsyncPromise.h"
9#include "mc/platform/brstd/future.h"
10
11// auto generated forward declare list
12// clang-format off
13struct XAsyncBlock;
14namespace Bedrock::Http { class HeaderCollection; }
16// clang-format on
17
18namespace Bedrock::Http {
19
20class WebSocket : public ::std::enable_shared_from_this<::Bedrock::Http::WebSocket> {
21public:
22 // member variables
23 // NOLINTBEGIN
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 WebSocket& operator=(WebSocket const&);
32 WebSocket(WebSocket const&);
33 WebSocket();
34
35public:
36 // virtual functions
37 // NOLINTBEGIN
38 virtual ~WebSocket() = default;
39
40 virtual ::Bedrock::Threading::Async<::std::error_code> send(::std::string const& message) const;
41
42 virtual void onMessage(::std::string_view incomingMessage);
43
44 virtual void onBinaryMessage(::gsl::span<uchar const>);
45
46 virtual void onClose(uint status);
47 // NOLINTEND
48
49public:
50 // member functions
51 // NOLINTBEGIN
52 MCNAPI ::HC_WEBSOCKET_OBSERVER* _allocateSocket(::brstd::future<void> connectCompleted);
53
54 MCNAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
55 connect(::std::string const& uri, ::Bedrock::Http::HeaderCollection const& headers);
56 // NOLINTEND
57
58public:
59 // static functions
60 // NOLINTBEGIN
62
63 MCNAPI static void _onConnect(
64 ::XAsyncBlock* asyncConnect,
65 ::std::weak_ptr<::Bedrock::Http::WebSocket> weakThis,
66 ::Bedrock::Threading::AsyncPromise<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
67 onComplete,
68 ::HC_WEBSOCKET_OBSERVER* connectHandle
69 );
70
71 MCNAPI static void
73 // NOLINTEND
74
75public:
76 // virtual function thunks
77 // NOLINTBEGIN
78 MCNAPI ::Bedrock::Threading::Async<::std::error_code> $send(::std::string const& message) const;
79
80 MCNAPI void $onMessage(::std::string_view incomingMessage);
81
82 MCNAPI void $onBinaryMessage(::gsl::span<uchar const>);
83
84 MCNAPI void $onClose(uint status);
85
86
87 // NOLINTEND
88
89public:
90 // vftables
91 // NOLINTBEGIN
92 MCNAPI static void** $vftable();
93 // NOLINTEND
94};
95
96} // namespace Bedrock::Http
Definition HeaderCollection.h:7
static MCAPI void _onSend(::XAsyncBlock *asyncSend, ::Bedrock::Threading::AsyncPromise<::std::error_code > onComplete)
static MCAPI void ** $vftable()
MCAPI ::Bedrock::Threading::Async<::std::error_code > $send(::std::string const &message) const
static MCAPI void _onConnect(::XAsyncBlock *asyncConnect, ::std::weak_ptr<::Bedrock::Http::WebSocket > weakThis, ::Bedrock::Threading::AsyncPromise<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code > > onComplete, ::HC_WEBSOCKET_OBSERVER *connectHandle)
MCAPI::HC_WEBSOCKET_OBSERVER * _allocateSocket(::brstd::future< void > connectCompleted)
MCAPI void $onClose(uint status)
MCAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code > > connect(::std::string const &uri, ::Bedrock::Http::HeaderCollection const &headers)
MCAPI void $onMessage(::std::string_view incomingMessage)
MCAPI void $onBinaryMessage(::gsl::span< uchar const >)
static MCAPI void _deallocateSocketAsync(::HC_WEBSOCKET_OBSERVER *handle)
Definition AsyncPromise.h:8
Definition future.h:8
Definition HC_WEBSOCKET_OBSERVER.h:8
Definition XAsyncBlock.h:10
Definition Alias.h:14