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