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
10// auto generated forward declare list
11// clang-format off
13struct XAsyncBlock;
14namespace Bedrock::Http { class HeaderCollection; }
15// clang-format on
16
17namespace Bedrock::Http {
18
19class WebSocket : public ::std::enable_shared_from_this<::Bedrock::Http::WebSocket> {
20public:
21 // member variables
22 // NOLINTBEGIN
26 // NOLINTEND
27
28public:
29 // prevent constructor by default
30 WebSocket& operator=(WebSocket const&);
31 WebSocket(WebSocket const&);
32 WebSocket();
33
34public:
35 // virtual functions
36 // NOLINTBEGIN
37 virtual ~WebSocket() = default;
38
39 virtual ::Bedrock::Threading::Async<::std::error_code> send(::std::string const& message) const;
40
41 virtual void onMessage(::std::string_view);
42
43 virtual void onBinaryMessage(::gsl::span<uchar const>);
44
45 virtual void onClose(uint);
46 // NOLINTEND
47
48public:
49 // member functions
50 // NOLINTBEGIN
51 MCNAPI ::HC_WEBSOCKET_OBSERVER* _allocateSocket(::std::future<void> connectCompleted);
52
53 MCNAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
54 connect(::std::string const& uri, ::Bedrock::Http::HeaderCollection const& headers);
55 // NOLINTEND
56
57public:
58 // static functions
59 // NOLINTBEGIN
61
62 MCNAPI static void _onConnect(
63 ::XAsyncBlock* asyncConnect,
64 ::std::weak_ptr<::Bedrock::Http::WebSocket> weakThis,
65 ::Bedrock::Threading::AsyncPromise<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
66 onComplete,
67 ::HC_WEBSOCKET_OBSERVER* connectHandle
68 );
69
70 MCNAPI static void
72 // NOLINTEND
73
74public:
75 // virtual function thunks
76 // NOLINTBEGIN
77 MCNAPI ::Bedrock::Threading::Async<::std::error_code> $send(::std::string const& message) const;
78
79 MCNAPI void $onMessage(::std::string_view);
80
81 MCNAPI void $onBinaryMessage(::gsl::span<uchar const>);
82
83 MCNAPI void $onClose(uint);
84
85
86 // NOLINTEND
87
88public:
89 // vftables
90 // NOLINTBEGIN
91 MCNAPI static void** $vftable();
92 // NOLINTEND
93};
94
95} // 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(::std::future< void > connectCompleted)
MCAPI void $onClose(uint)
MCAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code > > connect(::std::string const &uri, ::Bedrock::Http::HeaderCollection const &headers)
MCAPI void $onBinaryMessage(::gsl::span< uchar const >)
static MCAPI void _deallocateSocketAsync(::HC_WEBSOCKET_OBSERVER *handle)
MCAPI void $onMessage(::std::string_view)
Definition AsyncPromise.h:8
Definition HC_WEBSOCKET_OBSERVER.h:8
Definition XAsyncBlock.h:10
Definition Alias.h:14