LeviLamina
Loading...
Searching...
No Matches
NetworkSession.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/nether_net/ContextProxy.h"
7#include "mc/deps/nether_net/ESendType.h"
8#include "mc/deps/nether_net/ESessionError.h"
9#include "mc/deps/nether_net/SignalingChannelId.h"
10#include "mc/external/webrtc/PeerConnectionInterface.h"
11#include "mc/external/webrtc/PeerConnectionObserver.h"
12#include "mc/external/webrtc/scoped_refptr.h"
13
14// auto generated forward declare list
15// clang-format off
16namespace NetherNet { class CandidateAdd; }
17namespace NetherNet { class ConnectResponse; }
18namespace NetherNet { class NetworkSessionManager; }
19namespace NetherNet { struct NetworkID; }
20namespace cricket { class Candidate; }
21namespace webrtc { class DataChannelInterface; }
22namespace webrtc { class IceCandidateInterface; }
23namespace webrtc { class SessionDescriptionInterface; }
24namespace webrtc { class StatsReport; }
25// clang-format on
26
27namespace NetherNet {
28
30public:
31 // NetworkSession inner types define
32 enum class Direction : int {
33 Incoming = 0,
34 Outgoing = 1,
35 };
36
37 enum class ENegotiationState : int {
38 None = 0,
39 WaitingForResponse = 1,
40 WaitingForAccept = 2,
41 ICEProcessing = 3,
42 };
43
44public:
45 // member variables
46 // NOLINTBEGIN
85 // NOLINTEND
86
87public:
88 // prevent constructor by default
89 NetworkSession& operator=(NetworkSession const&);
92
93public:
94 // virtual functions
95 // NOLINTBEGIN
96 // vIndex: 0
97 virtual ~NetworkSession() /*override*/;
98
99 // vIndex: 1
100 virtual void OnSignalingChange(::webrtc::PeerConnectionInterface::SignalingState) /*override*/;
101
102 // vIndex: 4
103 virtual void OnDataChannel(::webrtc::scoped_refptr<::webrtc::DataChannelInterface> pDataChannel) /*override*/;
104
105 // vIndex: 5
106 virtual void OnRenegotiationNeeded() /*override*/;
107
108 // vIndex: 7
109 virtual void OnIceConnectionChange(::webrtc::PeerConnectionInterface::IceConnectionState new_state) /*override*/;
110
111 // vIndex: 9
112 virtual void OnConnectionChange(::webrtc::PeerConnectionInterface::PeerConnectionState new_state) /*override*/;
113
114 // vIndex: 10
115 virtual void OnIceGatheringChange(::webrtc::PeerConnectionInterface::IceGatheringState new_state) /*override*/;
116
117 // vIndex: 11
118 virtual void OnIceCandidate(::webrtc::IceCandidateInterface const* candidate) /*override*/;
119
120 // vIndex: 13
121 virtual void OnIceCandidatesRemoved(::std::vector<::cricket::Candidate> const&) /*override*/;
122
123 // vIndex: 14
124 virtual void OnIceConnectionReceivingChange(bool) /*override*/;
125 // NOLINTEND
126
127public:
128 // member functions
129 // NOLINTBEGIN
130 MCAPI void CheckSendDeferredData();
131
132 MCAPI void CheckUpdateStats();
133
134 MCAPI void EnterNewNegotiationState(::NetherNet::NetworkSession::ENegotiationState negotiationState);
135
136 MCAPI ::NetherNet::ESessionError InitializeIncoming(
137 ::NetherNet::NetworkID remoteID,
138 uint64 const& connectionID,
139 ::std::unique_ptr<::webrtc::SessionDescriptionInterface> pSessionDescription,
140 ::NetherNet::SignalingChannelId preference
141 );
142
143 MCAPI void InitializeOutgoing(::NetherNet::NetworkID remoteID);
144
145 MCAPI ::NetherNet::ESessionError IsDeadSession(::std::chrono::seconds negotiationTimeout);
146
147 MCAPI void MaybeProcessIceCandidates();
148
150
151 MCAPI void OnStatsRequestComplete(::std::vector<::webrtc::StatsReport const*> const& reports);
152
153 MCAPI void ProcessSignal(::NetherNet::CandidateAdd const& signal);
154
155 MCAPI void ProcessSignal(::NetherNet::ConnectResponse const& signal);
156
157 MCAPI void SendPacket(char const* pbData, uint cbData, ::NetherNet::ESendType eSendType);
158
159 MCAPI void TrySendSessionResponse();
160
161 MCAPI void UpdateDataChannelStates();
162
163 MCAPI void UpdateSessionActivity();
164 // NOLINTEND
165
166public:
167 // constructor thunks
168 // NOLINTBEGIN
169 MCAPI void* $ctor(::NetherNet::ContextProxy const& ctx, ::NetherNet::NetworkSessionManager& manager);
170 // NOLINTEND
171
172public:
173 // destructor thunk
174 // NOLINTBEGIN
175 MCAPI void $dtor();
176 // NOLINTEND
177
178public:
179 // virtual function thunks
180 // NOLINTBEGIN
181 MCFOLD void $OnSignalingChange(::webrtc::PeerConnectionInterface::SignalingState);
182
183 MCAPI void $OnDataChannel(::webrtc::scoped_refptr<::webrtc::DataChannelInterface> pDataChannel);
184
185 MCFOLD void $OnRenegotiationNeeded();
186
187 MCAPI void $OnIceConnectionChange(::webrtc::PeerConnectionInterface::IceConnectionState new_state);
188
189 MCAPI void $OnConnectionChange(::webrtc::PeerConnectionInterface::PeerConnectionState new_state);
190
191 MCAPI void $OnIceGatheringChange(::webrtc::PeerConnectionInterface::IceGatheringState new_state);
192
193 MCAPI void $OnIceCandidate(::webrtc::IceCandidateInterface const* candidate);
194
195 MCFOLD void $OnIceCandidatesRemoved(::std::vector<::cricket::Candidate> const&);
196
197 MCFOLD void $OnIceConnectionReceivingChange(bool);
198 // NOLINTEND
199
200public:
201 // vftables
202 // NOLINTBEGIN
203 MCAPI static void** $vftableForContextProxy();
204
205 MCAPI static void** $vftableForPeerConnectionObserver();
206 // NOLINTEND
207};
208
209} // namespace NetherNet
Definition Direction.h:5
Definition CandidateAdd.h:7
Definition ConnectResponse.h:7
Definition ContextProxy.h:18
Definition NetworkSessionManager.h:25
Definition NetworkSession.h:29
Definition IceCandidateInterface.h:12
Definition PeerConnectionObserver.h:22
Definition scoped_refptr.h:8
Definition NetworkID.h:7
Definition ctx.h:5
Definition Alias.h:14