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
34public:
35 // virtual functions
36 // NOLINTBEGIN
37 virtual ~WebSocket();
38
39 virtual ::Bedrock::Threading::Async<::std::error_code> send(::std::string const& message) const;
40
41 virtual void onMessage(::std::string_view message);
42
43 virtual void onBinaryMessage(::gsl::span<uchar const>);
44
45 virtual void onClose(uint status);
46 // NOLINTEND
47
48public:
49 // member functions
50 // NOLINTBEGIN
51 MCNAPI WebSocket();
52
53 MCNAPI ::HC_WEBSOCKET_OBSERVER* _allocateSocket(::brstd::future<void> connectCompleted);
54
55 MCNAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
56 connect(::std::string const& uri, ::Bedrock::Http::HeaderCollection const& headers);
57
58 MCNAPI bool disconnect();
59
60 MCNAPI bool isConnected() const;
61
62 MCNAPI void setPingInterval(::std::chrono::seconds interval);
63 // NOLINTEND
64
65public:
66 // static functions
67 // NOLINTBEGIN
68 MCNAPI static long _deallocateSocket(::HC_WEBSOCKET_OBSERVER* handle);
69
71
72 MCNAPI static void _onConnect(
73 ::XAsyncBlock* asyncConnect,
74 ::std::weak_ptr<::Bedrock::Http::WebSocket> weakThis,
75 ::Bedrock::Threading::AsyncPromise<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
76 onComplete,
77 ::HC_WEBSOCKET_OBSERVER* connectHandle
78 );
79
80 MCNAPI static void
82 // NOLINTEND
83
84public:
85 // constructor thunks
86 // NOLINTBEGIN
87 MCNAPI void* $ctor();
88 // NOLINTEND
89
90public:
91 // destructor thunk
92 // NOLINTBEGIN
93 MCNAPI void $dtor();
94 // NOLINTEND
95
96public:
97 // virtual function thunks
98 // NOLINTBEGIN
99 MCNAPI ::Bedrock::Threading::Async<::std::error_code> $send(::std::string const& message) const;
100
101 MCNAPI void $onMessage(::std::string_view message);
102
103 MCNAPI void $onBinaryMessage(::gsl::span<uchar const>);
104
105 MCNAPI void $onClose(uint status);
106
107
108 // NOLINTEND
109
110public:
111 // vftables
112 // NOLINTBEGIN
113 MCNAPI static void** $vftable();
114 // NOLINTEND
115};
116
117} // namespace Bedrock::Http
Definition HeaderCollection.h:7
MCAPI bool isConnected() const
MCAPI void $onMessage(::std::string_view message)
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)
static MCAPI long _deallocateSocket(::HC_WEBSOCKET_OBSERVER *handle)
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 setPingInterval(::std::chrono::seconds interval)
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