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/threading/XAsyncOp.h"
7#include "mc/external/lib_http_client/HCWebSocketCloseStatus.h"
8#include "mc/external/lib_http_client/http_stl_allocator.h"
9
10// auto generated forward declare list
11// clang-format off
13struct XAsyncBlock;
15namespace xbox::httpclient { class IWebSocketProvider; }
16namespace xbox::httpclient { struct HeaderCompare; }
17// clang-format on
18
19namespace xbox::httpclient {
20
21class WebSocket : public ::std::enable_shared_from_this<::xbox::httpclient::WebSocket> {
22public:
23 // WebSocket inner types declare
24 // clang-format off
25 struct ConnectContext;
26 struct EventCallbacks;
27 struct ProviderContext;
28 // clang-format on
29
30 // WebSocket inner types define
32 public:
33 // member variables
34 // NOLINTBEGIN
39 // NOLINTEND
40
41 public:
42 // prevent constructor by default
43 ConnectContext& operator=(ConnectContext const&);
46
47 public:
48 // member functions
49 // NOLINTBEGIN
50 MCNAPI ConnectContext(::std::shared_ptr<::xbox::httpclient::WebSocket> websocket, ::XAsyncBlock* async);
51 // NOLINTEND
52
53 public:
54 // constructor thunks
55 // NOLINTBEGIN
56 MCNAPI void* $ctor(::std::shared_ptr<::xbox::httpclient::WebSocket> websocket, ::XAsyncBlock* async);
57 // NOLINTEND
58 };
59
61 public:
62 // member variables
63 // NOLINTBEGIN
65 // NOLINTEND
66
67 public:
68 // prevent constructor by default
69 ProviderContext& operator=(ProviderContext const&);
72 };
73
75 public:
76 // member variables
77 // NOLINTBEGIN
83 // NOLINTEND
84
85 public:
86 // prevent constructor by default
87 EventCallbacks& operator=(EventCallbacks const&);
90 };
91
92 enum class State : int {
93 Initial = 0,
94 Connecting = 1,
95 Connected = 2,
96 Disconnecting = 3,
97 Disconnected = 4,
98 };
99
100public:
101 // member variables
102 // NOLINTBEGIN
119 // NOLINTEND
120
121public:
122 // prevent constructor by default
123 WebSocket& operator=(WebSocket const&);
124 WebSocket(WebSocket const&);
125 WebSocket();
126
127public:
128 // virtual functions
129 // NOLINTBEGIN
130 // vIndex: 0
131 virtual ~WebSocket();
132 // NOLINTEND
133
134public:
135 // member functions
136 // NOLINTBEGIN
137 MCNAPI long ConnectAsync(::http_string&& uri, ::http_string&& subProtocol, ::XAsyncBlock* asyncBlock);
138
139 MCNAPI long Disconnect();
140
141 MCNAPI ::std::map<
142 ::http_string,
143 ::http_string,
146 Headers() const;
147
148 MCNAPI uint64 MaxReceiveBufferSize() const;
149
150 MCNAPI uint PingInterval() const;
151
153 void (*messageFunc)(::HC_WEBSOCKET_OBSERVER*, char const*, void*),
154 void (*binaryMessageFunc)(::HC_WEBSOCKET_OBSERVER*, uchar const*, uint, void*),
155 void (*binaryFragmentFunc)(::HC_WEBSOCKET_OBSERVER*, uchar const*, uint, bool, void*),
156 void (*closeFunc)(::HC_WEBSOCKET_OBSERVER*, ::HCWebSocketCloseStatus, void*),
157 void* callbackContext
158 );
159
160 MCNAPI long SendAsync(char const* message, ::XAsyncBlock* asyncBlock);
161
162 MCNAPI long SetHeader(::http_string&& headerName, ::http_string&& headerValue);
163
164 MCNAPI long SetPingInterval(uint pingInterval);
165
167 // NOLINTEND
168
169public:
170 // static functions
171 // NOLINTBEGIN
172 MCNAPI static void BinaryMessageFragmentFunc(
174 uchar const* bytes,
175 uint payloadSize,
176 bool isLastFragment,
177 void*
178 );
179
180 MCNAPI static void BinaryMessageFunc(::HC_WEBSOCKET_OBSERVER* handle, uchar const* bytes, uint payloadSize, void*);
181
182 MCNAPI static void CloseFunc(::HC_WEBSOCKET_OBSERVER* handle, ::HCWebSocketCloseStatus status, void*);
183
184 MCNAPI static long ConnectAsyncProvider(::XAsyncOp op, ::XAsyncProviderData const* data);
185
186 MCNAPI static void ConnectComplete(::XAsyncBlock* async);
187
188 MCNAPI static void MessageFunc(::HC_WEBSOCKET_OBSERVER* handle, char const* message, void*);
189
191 ::HC_WEBSOCKET_OBSERVER* websocket,
192 bool receiving,
193 char const* message,
194 uchar const* payloadBytes,
195 uint64 payloadSize
196 );
197 // NOLINTEND
198
199public:
200 // constructor thunks
201 // NOLINTBEGIN
202 MCNAPI void* $ctor(uint64 _id, ::xbox::httpclient::IWebSocketProvider& provider);
203 // NOLINTEND
204
205public:
206 // destructor thunk
207 // NOLINTBEGIN
208 MCNAPI void $dtor();
209 // NOLINTEND
210
211public:
212 // vftables
213 // NOLINTBEGIN
214 MCNAPI static void** $vftable();
215 // NOLINTEND
216};
217
218} // namespace xbox::httpclient
Definition http_stl_allocator.h:6
Definition IWebSocketProvider.h:17
Definition WebSocket.h:21
static MCAPI void BinaryMessageFragmentFunc(::HC_WEBSOCKET_OBSERVER *handle, uchar const *bytes, uint payloadSize, bool isLastFragment, void *)
static MCAPI void BinaryMessageFunc(::HC_WEBSOCKET_OBSERVER *handle, uchar const *bytes, uint payloadSize, void *)
MCAPI uint RegisterEventCallbacks(void(*messageFunc)(::HC_WEBSOCKET_OBSERVER *, char const *, void *), void(*binaryMessageFunc)(::HC_WEBSOCKET_OBSERVER *, uchar const *, uint, void *), void(*binaryFragmentFunc)(::HC_WEBSOCKET_OBSERVER *, uchar const *, uint, bool, void *), void(*closeFunc)(::HC_WEBSOCKET_OBSERVER *, ::HCWebSocketCloseStatus, void *), void *callbackContext)
MCAPI uint PingInterval() const
MCAPI ::std::map< ::http_string, ::http_string, ::xbox::httpclient::HeaderCompare, ::http_stl_allocator<::std::pair<::http_string const, ::http_string > > > const & Headers() const
static MCAPI void NotifyWebSocketRoutedHandlers(::HC_WEBSOCKET_OBSERVER *websocket, bool receiving, char const *message, uchar const *payloadBytes, uint64 payloadSize)
MCAPI uint64 MaxReceiveBufferSize() const
static MCAPI void MessageFunc(::HC_WEBSOCKET_OBSERVER *handle, char const *message, void *)
static MCAPI void ** $vftable()
MCAPI long SetPingInterval(uint pingInterval)
MCAPI long SendAsync(char const *message, ::XAsyncBlock *asyncBlock)
static MCAPI void ConnectComplete(::XAsyncBlock *async)
MCAPI long ConnectAsync(::http_string &&uri, ::http_string &&subProtocol, ::XAsyncBlock *asyncBlock)
MCAPI WebSocket(uint64 _id, ::xbox::httpclient::IWebSocketProvider &provider)
static MCAPI long ConnectAsyncProvider(::XAsyncOp op, ::XAsyncProviderData const *data)
MCAPI void * $ctor(uint64 _id, ::xbox::httpclient::IWebSocketProvider &provider)
MCAPI long SetHeader(::http_string &&headerName, ::http_string &&headerValue)
static MCAPI void CloseFunc(::HC_WEBSOCKET_OBSERVER *handle, ::HCWebSocketCloseStatus status, void *)
Definition HC_WEBSOCKET_OBSERVER.h:14
Definition XAsyncBlock.h:10
Definition XAsyncProviderData.h:5
Definition Alias.h:14
Definition HeaderCompare.h:10
MCAPI ConnectContext(::std::shared_ptr<::xbox::httpclient::WebSocket > websocket, ::XAsyncBlock *async)
MCAPI void * $ctor(::std::shared_ptr<::xbox::httpclient::WebSocket > websocket, ::XAsyncBlock *async)