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
28#ifdef LL_PLAT_S
29public:
30 // prevent constructor by default
31 PersistentWebSocket& operator=(PersistentWebSocket const&);
32 PersistentWebSocket(PersistentWebSocket const&);
33
34#else // LL_PLAT_C
35public:
36 // prevent constructor by default
37 PersistentWebSocket& operator=(PersistentWebSocket const&);
38 PersistentWebSocket(PersistentWebSocket const&);
39 PersistentWebSocket();
40
41#endif
42public:
43 // virtual functions
44 // NOLINTBEGIN
45 virtual ~PersistentWebSocket() /*override*/;
46
47 virtual bool shouldReconnect() const;
48
49 virtual ::Bedrock::Threading::Async<::Bedrock::Http::Url> getUrl() = 0;
50
51 virtual ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection> getHeaders();
52
53 virtual ::Bedrock::Http::RetryPolicy getReconnectPolicy();
54
55 virtual void onConnect();
56
57 virtual void onDisconnect(bool, uint);
58
59 virtual void onClose(uint status) /*override*/;
60 // NOLINTEND
61
62public:
63 // member functions
64 // NOLINTBEGIN
65#ifdef LL_PLAT_S
66 MCNAPI PersistentWebSocket();
67#endif
68
69 MCNAPI void _connectWithRetry(
70 ::std::string const& uri,
72 ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>,
74 );
75
76 MCNAPI void _onCloseMaybeReconnect(uint status, bool shouldReconnect);
77
78 MCNAPI void _onConnect(
79 ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code> result,
81 );
82
83 MCNAPI void _reconnect(
84 ::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code> lastResult,
86 );
87
88 MCNAPI ::Bedrock::Threading::Async<::nonstd::expected<::Bedrock::Http::StatusCode, ::std::error_code>>
90
91 MCNAPI void disconnect();
92 // NOLINTEND
93
94public:
95 // constructor thunks
96 // NOLINTBEGIN
97#ifdef LL_PLAT_S
98 MCNAPI void* $ctor();
99#endif
100 // NOLINTEND
101
102public:
103 // destructor thunk
104 // NOLINTBEGIN
105 MCNAPI void $dtor();
106 // NOLINTEND
107
108public:
109 // virtual function thunks
110 // NOLINTBEGIN
111 MCNAPI bool $shouldReconnect() const;
112
113 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection> $getHeaders();
114
115 MCNAPI ::Bedrock::Http::RetryPolicy $getReconnectPolicy();
116
117 MCNAPI void $onConnect();
118
119 MCNAPI void $onDisconnect(bool, uint);
120
121 MCNAPI void $onClose(uint status);
122
123
124 // NOLINTEND
125
126public:
127 // vftables
128 // NOLINTBEGIN
129 MCNAPI static void** $vftable();
130 // NOLINTEND
131};
132
133} // 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:20
Definition Url.h:7
Definition Alias.h:14