LeviLamina
Loading...
Searching...
No Matches
PersistentWebSocket.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/http/WebSocket.h"
8#include "mc/deps/core/threading/Async.h"
9#include "mc/deps/core/threading/AsyncPromise.h"
10
11// auto generated forward declare list
12// clang-format off
13namespace Bedrock::Http { class HeaderCollection; }
14namespace Bedrock::Http { class RetryPolicy; }
15namespace Bedrock::Http { struct Url; }
16// clang-format on
17
18namespace Bedrock::Http {
19
20class PersistentWebSocket : public ::Bedrock::Http::WebSocket {
21public:
22 // member variables
23 // NOLINTBEGIN
26 // NOLINTEND
27
28public:
29 // prevent constructor by default
30 PersistentWebSocket& operator=(PersistentWebSocket const&);
31 PersistentWebSocket(PersistentWebSocket const&);
32
33public:
34 // virtual functions
35 // NOLINTBEGIN
36 virtual ~PersistentWebSocket() /*override*/;
37
38 virtual bool shouldReconnect() const;
39
40 virtual ::Bedrock::Threading::Async<::Bedrock::Http::Url> getUrl() = 0;
41
42 virtual ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection> getHeaders();
43
44 virtual ::Bedrock::Http::RetryPolicy getReconnectPolicy();
45
46 virtual void onConnect();
47
48 virtual void onDisconnect(bool, uint);
49
50 virtual void onClose(uint status) /*override*/;
51 // NOLINTEND
52
53public:
54 // member functions
55 // NOLINTBEGIN
56 MCNAPI_S PersistentWebSocket();
57
58 MCNAPI void _connectWithRetry(
59 ::std::string const& uri,
61 ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>,
63 );
64
65 MCNAPI void _onCloseMaybeReconnect(uint status, bool shouldReconnect);
66
67 MCNAPI void _onConnect(
68 ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code> result,
70 );
71
72 MCNAPI void _reconnect(
73 ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code> lastResult,
75 );
76
77 MCNAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
79
80 MCNAPI void disconnect();
81 // NOLINTEND
82
83public:
84 // constructor thunks
85 // NOLINTBEGIN
86 MCNAPI_S void* $ctor();
87 // NOLINTEND
88
89public:
90 // destructor thunk
91 // NOLINTBEGIN
92 MCNAPI void $dtor();
93 // NOLINTEND
94
95public:
96 // virtual function thunks
97 // NOLINTBEGIN
98 MCNAPI bool $shouldReconnect() const;
99
100 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection> $getHeaders();
101
102 MCNAPI ::Bedrock::Http::RetryPolicy $getReconnectPolicy();
103
104 MCNAPI void $onConnect();
105
106 MCNAPI void $onDisconnect(bool, uint);
107
108 MCNAPI void $onClose(uint status);
109
110
111 // NOLINTEND
112
113public:
114 // vftables
115 // NOLINTBEGIN
116 MCNAPI static void** $vftable();
117 // NOLINTEND
118};
119
120} // namespace Bedrock::Http
Definition HeaderCollection.h:7
MCAPI void _reconnect(::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code > lastResult, ::Bedrock::Http::RetryPolicy &&retry)
MCAPI::Bedrock::Http::RetryPolicy $getReconnectPolicy()
MCAPI void $onDisconnect(bool, uint)
MCAPI void _onCloseMaybeReconnect(uint status, bool shouldReconnect)
MCAPI void $onClose(uint status)
MCAPI bool $shouldReconnect() const
MCAPI void _connectWithRetry(::std::string const &uri, ::Bedrock::Http::HeaderCollection const &headers, ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code >, ::Bedrock::Http::RetryPolicy &&retry)
MCAPI void _onConnect(::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code > result, ::Bedrock::Http::RetryPolicy &&retry)
static MCAPI void ** $vftable()
MCAPI ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection > $getHeaders()
MCAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code > > connectWithRetry(::Bedrock::Http::RetryPolicy &&retry)
Definition RetryPolicy.h:12
Definition WebSocket.h:19
Definition Url.h:7
Definition Alias.h:14