LeviLamina
Loading...
Searching...
No Matches
NetworkSystem.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7#include "mc/deps/core/threading/IAsyncResult.h"
8#include "mc/deps/core/utility/BinaryStream.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/network/DevConnectionQuality.h"
11#include "mc/network/NetworkEnableDisableListener.h"
12#include "mc/network/NetworkSettingOptions.h"
13#include "mc/network/RakNetConnector.h"
14#include "mc/network/RakPeerHelper.h"
15#include "mc/network/connection/DisconnectFailReason.h"
16
17// auto generated forward declare list
18// clang-format off
19class IPacketObserver;
20class LocalConnector;
23class NetworkPeer;
26class Packet;
27class RemoteConnector;
28class Scheduler;
29class ServerLocator;
30class TaskGroup;
31class WeakEntityRef;
33// clang-format on
34
38public:
39 // NetworkSystem inner types declare
40 // clang-format off
41 struct Dependencies;
43 // clang-format on
44
45 // NetworkSystem inner types define
46 struct Dependencies {
47 public:
48 // member variables
49 // NOLINTBEGIN
57 // NOLINTEND
58
59 public:
60 // prevent constructor by default
61 Dependencies& operator=(Dependencies const&);
64
65 public:
66 // member functions
67 // NOLINTBEGIN
68 MCNAPI ~Dependencies();
69 // NOLINTEND
70
71 public:
72 // destructor thunk
73 // NOLINTBEGIN
74 MCNAPI void $dtor();
75 // NOLINTEND
76 };
77
79 public:
80 // member variables
81 // NOLINTBEGIN
84 // NOLINTEND
85
86 public:
87 // prevent constructor by default
91 };
92
93public:
94 // member variables
95 // NOLINTBEGIN
96 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::NetworkSessionOwner>> mNetworkSessionOwner;
97 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::NetworkConnection>>> mConnections;
98 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LocalConnector>> mLocalConnector;
99 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RemoteConnector>> mRemoteConnector;
100 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ServerLocator>> mServerLocator;
101 ::ll::TypedStorage<8, 80, ::std::recursive_mutex> mConnectionsMutex;
102 ::ll::TypedStorage<8, 8, uint64> mCurrentConnection;
103 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Threading::IAsyncResult<void>>> mReceiveTask;
104 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mReceiveTaskGroup;
105 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IPacketObserver>> mPacketObserver;
106 ::ll::TypedStorage<8, 8, ::Scheduler&> mMainThread;
107 ::ll::TypedStorage<8, 32, ::std::string> mReceiveBuffer;
108 ::ll::TypedStorage<8, 32, ::std::string> mSendBuffer;
109 ::ll::TypedStorage<8, 80, ::BinaryStream> mSendStream;
110 ::ll::TypedStorage<8, 32, ::std::unique_ptr<::NetworkSystem::IncomingPacketQueue>[4]> mIncomingPackets;
111 ::ll::TypedStorage<1, 1, bool> mUseIPv6Only;
112 ::ll::TypedStorage<2, 2, ushort> mDefaultGamePort;
113 ::ll::TypedStorage<2, 2, ushort> mDefaultGamePortv6;
114 ::ll::TypedStorage<1, 1, bool> mIsLanDiscoveryEnabled;
115 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::NetworkStatistics>> mNetworkStatistics;
116 ::ll::TypedStorage<1, 1, bool> mEnablePacketRateLimiting;
117 ::ll::TypedStorage<1, 1, bool> mWebsocketsEnabled;
118 ::ll::TypedStorage<4, 24, ::NetworkSettingOptions> mNetworkSettingOptions;
119 ::ll::TypedStorage<1, 1, bool> mRawRecordingEnabled;
120 // NOLINTEND
121
122public:
123 // prevent constructor by default
124 NetworkSystem& operator=(NetworkSystem const&);
127
128public:
129 // virtual functions
130 // NOLINTBEGIN
131 // vIndex: 1
132 virtual bool useIPv4Only() const /*override*/;
133
134 // vIndex: 2
135 virtual bool useIPv6Only() const /*override*/;
136
137 // vIndex: 3
138 virtual ushort getDefaultGamePort() const /*override*/;
139
140 // vIndex: 4
141 virtual ushort getDefaultGamePortv6() const /*override*/;
142
143 // vIndex: 0
144 virtual ~NetworkSystem() /*override*/;
145
146 // vIndex: 1
147 virtual void _onDisable() /*override*/;
148
149 // vIndex: 2
150 virtual void _onEnable() /*override*/;
151
152 // vIndex: 1
153 virtual bool
154 onNewIncomingConnection(::NetworkIdentifier const& id, ::std::shared_ptr<::NetworkPeer>&& peer) /*override*/;
155
156 // vIndex: 2
157 virtual bool
158 onNewOutgoingConnection(::NetworkIdentifier const& id, ::std::shared_ptr<::NetworkPeer>&& peer) /*override*/;
159
160 // vIndex: 3
161 virtual void onConnectionClosed(
162 ::NetworkIdentifier const& id,
163 ::Connection::DisconnectFailReason const discoReason,
164 ::std::string const& reasonMessage,
165 bool skipDisconnectMessage
166 ) /*override*/;
167
168 // vIndex: 4
169 virtual void onAllConnectionsClosed(::Connection::DisconnectFailReason, ::std::string const&, bool) /*override*/;
170
171 // vIndex: 5
172 virtual void
173 onAllRemoteConnectionsClosed(::Connection::DisconnectFailReason, ::std::string const&, bool) /*override*/;
174
175 // vIndex: 6
176 virtual void onOutgoingConnectionFailed(
177 ::Connection::DisconnectFailReason discoReason,
178 ::std::string const& reasonMessage
179 ) /*override*/;
180
181 // vIndex: 7
182 virtual void onWebsocketRequest(
183 ::std::string const& serverAddress,
184 ::std::string const& payload,
185 ::std::function<void()> errorCallback
186 ) /*override*/;
187 // NOLINTEND
188
189public:
190 // member functions
191 // NOLINTBEGIN
192 MCAPI explicit NetworkSystem(::NetworkSystem::Dependencies&& deps);
193
194 MCAPI bool _isUsingNetherNetTransportLayer() const;
195
196 MCAPI void _sendInternal(::NetworkIdentifier const& id, ::Packet const& packet, ::std::string const& data);
197
198 MCAPI bool
199 _sortAndPacketizeEvents(::NetworkConnection& connection, ::std::chrono::steady_clock::time_point endTime);
200
201 MCAPI void disconnect();
202
203 MCAPI void enableAsyncFlush(::NetworkIdentifier const& id);
204
205 MCAPI ::NetworkPeer* getPeerForUser(::NetworkIdentifier const& id);
206
207 MCAPI ::Bedrock::NotNullNonOwnerPtr<::RemoteConnector> getRemoteConnector();
208
209 MCAPI bool isServer() const;
210
211 MCAPI void runEvents(bool networkIsCritical);
212
213 MCAPI void send(::NetworkIdentifier const& id, ::Packet const& packet, ::SubClientId recipientSubId);
214
215 MCAPI void sendToMultiple(::std::vector<::NetworkIdentifierWithSubId> const& ids, ::Packet const& packet);
216
217 MCAPI void setDevConnectionQuality(::DevConnectionQuality quality);
218
219 MCAPI void update(::std::vector<::WeakEntityRef> const* userList);
220 // NOLINTEND
221
222public:
223 // constructor thunks
224 // NOLINTBEGIN
225 MCAPI void* $ctor(::NetworkSystem::Dependencies&& deps);
226 // NOLINTEND
227
228public:
229 // destructor thunk
230 // NOLINTBEGIN
231 MCAPI void $dtor();
232 // NOLINTEND
233
234public:
235 // virtual function thunks
236 // NOLINTBEGIN
237 MCFOLD bool $useIPv4Only() const;
238
239 MCAPI bool $useIPv6Only() const;
240
241 MCAPI ushort $getDefaultGamePort() const;
242
243 MCAPI ushort $getDefaultGamePortv6() const;
244
245 MCAPI void $_onDisable();
246
247 MCAPI void $_onEnable();
248
249 MCAPI bool $onNewIncomingConnection(::NetworkIdentifier const& id, ::std::shared_ptr<::NetworkPeer>&& peer);
250
251 MCAPI bool $onNewOutgoingConnection(::NetworkIdentifier const& id, ::std::shared_ptr<::NetworkPeer>&& peer);
252
253 MCAPI void $onConnectionClosed(
254 ::NetworkIdentifier const& id,
255 ::Connection::DisconnectFailReason const discoReason,
256 ::std::string const& reasonMessage,
257 bool skipDisconnectMessage
258 );
259
260 MCAPI void
261 $onOutgoingConnectionFailed(::Connection::DisconnectFailReason discoReason, ::std::string const& reasonMessage);
262
263 MCAPI void $onWebsocketRequest(
264 ::std::string const& serverAddress,
265 ::std::string const& payload,
266 ::std::function<void()> errorCallback
267 );
268 // NOLINTEND
269
270public:
271 // vftables
272 // NOLINTBEGIN
273 MCNAPI static void** $vftableForConnectionCallbacks();
274
275 MCNAPI static void** $vftableForIPSupportInterface();
276
278 // NOLINTEND
279};
Definition IPacketObserver.h:14
Definition LocalConnector.h:16
Definition NetworkConnection.h:29
Definition NetworkEnableDisableListener.h:5
Definition NetworkIdentifier.h:10
Definition NetworkPeer.h:8
Definition NetworkSessionOwner.h:9
Definition NetworkStatistics.h:24
Definition NetworkSystem.h:37
static MCAPI void ** $vftableForIPSupportInterface()
static MCAPI void ** $vftableForNetworkEnableDisableListener()
static MCAPI void ** $vftableForConnectionCallbacks()
Definition Packet.h:26
Definition RakPeerHelper.h:23
Definition RemoteConnector.h:19
Definition Scheduler.h:13
Definition ServerLocator.h:19
Definition TaskGroup.h:104
Definition WeakEntityRef.h:14
STL namespace.
Definition NetworkIdentifierWithSubId.h:10
Definition NetworkSystem.h:46
Definition NetworkSystem.h:78
Definition RakNetConnector.h:39
Definition Alias.h:14