Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
NetworkConnection.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/deps/core/NetworkConnectionType.h"
5#include "mc/network/BatchedNetworkPeer.h"
6#include "mc/network/CompressedNetworkPeer.h"
7#include "mc/network/EncryptedNetworkPeer.h"
8#include "mc/network/NetworkIdentifier.h"
9
10// auto generated inclusion list
11#include "mc/deps/certificates/WebKey.h"
12#include "mc/deps/core/utility/NonOwnerPointer.h"
13#include "mc/network/NetworkIdentifier.h"
14#include "mc/network/connection/DisconnectFailReason.h"
15
16// auto generated forward declare list
17// clang-format off
21class IPacketObserver;
25class NetworkPeer;
27class Scheduler;
29// clang-format on
30
31class NetworkConnection {
32public:
33 // NetworkConnection inner types declare
34 // clang-format off
35 struct PausedPacket;
36 // clang-format on
37
38 // NetworkConnection inner types define
39 enum class Type : int {
40 Remote = 0,
41 Local = 1,
42 };
43
44 struct PausedPacket {
45 public:
46 // member variables
47 // NOLINTBEGIN
48 ::ll::TypedStorage<8, 32, ::std::string> mData;
49 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mTimepoint;
50 // NOLINTEND
51 };
52
53public:
54 // member variables
55 // NOLINTBEGIN
56 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mId;
57 ::ll::TypedStorage<4, 4, ::NetworkConnection::Type> mType;
58 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::NetworkPacketRecorder>> mNetworkPacketRecorder;
59 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::EncryptedNetworkPeer>> mEncryptedPeer;
60 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::CompressedNetworkPeer>> mCompressedPeer;
61 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::BatchedNetworkPeer>> mBatchedPeer;
62 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::LatencyNetworkPeer>> mLatencyPeer;
63 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::PacketTraceNetworkPeer>> mPacketTracePeer;
64 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::NetworkPeer>> mPeer;
65 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mLastPacketTime;
66 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mClosedTime;
67 ::ll::TypedStorage<4, 4, ::std::bitset<2>> mPausedChannels;
68 ::ll::TypedStorage<
69 8,
70 40,
71 ::std::queue<::NetworkConnection::PausedPacket, ::std::deque<::NetworkConnection::PausedPacket>>>
72 mResumedPackets;
73 ::ll::TypedStorage<8, 48, ::std::array<::std::vector<::NetworkConnection::PausedPacket>, 2>> mPausedPackets;
74 ::ll::TypedStorage<1, 1, bool> mDisconnected;
75 ::ll::TypedStorage<1, 1, bool> mShouldCloseConnection;
76 ::ll::TypedStorage<1, 1, bool> mEncryptionDisabled;
77 ::ll::TypedStorage<4, 4, ::Connection::DisconnectFailReason> mShouldCloseConnectionReason;
78 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IPacketSecurityController>> mPacketSecurityController;
79 ::ll::TypedStorage<8, 48, ::std::optional<::WebKey>> mIdentityPublicKey;
80 // NOLINTEND
81
82public:
83 // prevent constructor by default
84 NetworkConnection();
85
86public:
87 // member functions
88 // NOLINTBEGIN
90 ::NetworkIdentifier const& id,
91 ::std::shared_ptr<::NetworkPeer> peer,
92 bool isSafeAndFast,
94 ::Scheduler& mainThread,
95 bool isRawRecordingEnabled,
96 ::NetworkSettingOptions const& settings,
97 ::std::shared_ptr<::IPacketSecurityController> packetSecurityController,
98 ::std::optional<::WebKey> identityPublicKey
99 );
100
101#ifdef LL_PLAT_C
102 MCAPI void setChannelPaused(uint channel, bool paused);
103#endif
104 // NOLINTEND
105
106public:
107 // constructor thunks
108 // NOLINTBEGIN
109 MCNAPI void* $ctor(
110 ::NetworkIdentifier const& id,
111 ::std::shared_ptr<::NetworkPeer> peer,
112 bool isSafeAndFast,
114 ::Scheduler& mainThread,
115 bool isRawRecordingEnabled,
116 ::NetworkSettingOptions const& settings,
117 ::std::shared_ptr<::IPacketSecurityController> packetSecurityController,
118 ::std::optional<::WebKey> identityPublicKey
119 );
120 // NOLINTEND
121};
Definition BatchedNetworkPeer.h:21
Definition NonOwnerPointer.h:9
Definition CompressedNetworkPeer.h:11
Definition EncryptedNetworkPeer.h:15
Definition IPacketObserver.h:14
Definition IPacketSecurityController.h:22
Definition LatencyNetworkPeer.h:16
MCAPI void * $ctor(::NetworkIdentifier const &id, ::std::shared_ptr<::NetworkPeer > peer, bool isSafeAndFast, ::Bedrock::NonOwnerPointer<::IPacketObserver > packetObserver, ::Scheduler &mainThread, bool isRawRecordingEnabled, ::NetworkSettingOptions const &settings, ::std::shared_ptr<::IPacketSecurityController > packetSecurityController, ::std::optional<::WebKey > identityPublicKey)
MCAPI NetworkConnection(::NetworkIdentifier const &id, ::std::shared_ptr<::NetworkPeer > peer, bool isSafeAndFast, ::Bedrock::NonOwnerPointer<::IPacketObserver > packetObserver, ::Scheduler &mainThread, bool isRawRecordingEnabled, ::NetworkSettingOptions const &settings, ::std::shared_ptr<::IPacketSecurityController > packetSecurityController, ::std::optional<::WebKey > identityPublicKey)
Definition NetworkIdentifier.h:10
Definition NetworkPacketRecorder.h:10
Definition NetworkPeer.h:8
Definition PacketTraceNetworkPeer.h:16
Definition Scheduler.h:15
Definition NetworkConnection.h:44
Definition NetworkSettingOptions.h:9