43 struct DisconnectEvent {
55 DisconnectEvent& operator=(DisconnectEvent
const&);
56 DisconnectEvent(DisconnectEvent
const&);
60 struct NewIncomingConnectionEvent {
69 NewIncomingConnectionEvent& operator=(NewIncomingConnectionEvent
const&);
70 NewIncomingConnectionEvent(NewIncomingConnectionEvent
const&);
71 NewIncomingConnectionEvent();
86 struct NewOutgoingConnectionEvent {
95 NewOutgoingConnectionEvent& operator=(NewOutgoingConnectionEvent
const&);
96 NewOutgoingConnectionEvent(NewOutgoingConnectionEvent
const&);
97 NewOutgoingConnectionEvent();
103 MCNAPI ~NewOutgoingConnectionEvent();
116 using BroadcastRequestCallback = ::std::function<bool(
void*,
int*)>;
120 using Event = ::std::variant<
130 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Http::LibHttpClientInstance>
const> mHttpLibrary;
131 ::ll::TypedStorage<8, 24, ::NetherNet::NetworkID const> mNetworkID;
139 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mBroadcastCallbackMutex;
140 ::ll::TypedStorage<8, 64, ::std::function<bool(
void*,
int*)>> mBroadcastRequestCallback;
142 mBroadcastResponseCallback;
143 ::ll::TypedStorage<8, 80, ::std::recursive_mutex> mEventsMutex;
147 ::std::unique_ptr<::std::vector<::std::variant<
152 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::WebRTCNetworkPeer>>> mPeers;
157 NetherNetConnector();
162 virtual ~NetherNetConnector() ;
166 virtual void setDisableLanSignaling(
bool disableLanSignaling) ;
170 virtual bool connect(
175 virtual void tick() ;
177 virtual void runEvents() ;
179 virtual ::NetworkIdentifier getNetworkIdentifier() const ;
185 virtual ::TransportLayer getNetworkType() const ;
187 virtual
void _onDisable() ;
189 virtual
void _onEnable() ;
191 virtual
void OnSpopViolation() ;
193 virtual
void OnSessionClose(
194 ::NetherNet::NetworkID networkID,
196 ::NetherNet::ESessionError sessionError,
197 ::Json::Value summary
201 OnBroadcastResponseReceived(::NetherNet::NetworkID networkID,
void const* pApplicationData,
int size) ;
203 virtual
bool OnBroadcastDiscoveryRequestReceivedGetResponse(
void* pApplicationData,
int* pSize) ;
205 virtual
void OnSessionGetConnectionFlags(::NetherNet::NetworkID flags, uint*) ;
211 MCAPI NetherNetConnector(
214 ::
std::optional<::NetherNet::NetworkID> networkId
217 MCAPI
void _createEventQueue();
220 ::NetherNet::NetworkID const& remoteId,
223 ::Bedrock::Threading::UniqueLock<::
std::recursive_mutex> const&
226 MCAPI
void _queueIncomingConnectionEvent(::NetherNet::NetworkID peerId, uint64 sessionId,
bool isLan);
232 MCFOLD ::NetherNet::NetworkID
const& getNetworkID()
const;
234 MCAPI
bool getSessionState(
240 MCAPI
bool isPacketAvailable(
::NetherNet::NetworkID remoteId, uint64 sessionId, uint* pcbMessageSize)
const;
242 MCAPI
bool readPacket(
254 MCAPI
bool sendPacket(
257 ::std::string
const& data,
258 ::NetherNet::ESendType eSendType
261 MCAPI
void setBroadcastRequestCallback(::std::function<
bool(
void*,
int*)>&& broadcastRequestCallback);
263 MCAPI
void setBroadcastResponseCallback(
267 MCAPI
void setRelayConfig(::std::vector<::NetherNet::StunRelayServer>
const& config)
const;
269 MCAPI
void setSignalingInterface(::std::shared_ptr<::NetherNet::ISignalingInterface>&& channel)
const;
278 ::std::optional<::NetherNet::NetworkID> networkId
293 MCAPI
void $setDisableLanSignaling(
bool disableLanSignaling);
297 MCFOLD
bool $connect(
304 MCAPI
void $runEvents();
306 MCAPI ::NetworkIdentifier $getNetworkIdentifier()
const;
312 MCFOLD ::TransportLayer $getNetworkType()
const;
314 MCFOLD
void $_onDisable();
316 MCFOLD
void $_onEnable();
318 MCFOLD
void $OnSpopViolation();
320 MCAPI
void $OnSessionClose(
323 ::NetherNet::ESessionError sessionError,
327 MCAPI
void $OnBroadcastResponseReceived(
::NetherNet::NetworkID networkID,
void const* pApplicationData,
int size);
329 MCAPI
bool $OnBroadcastDiscoveryRequestReceivedGetResponse(
void* pApplicationData,
int* pSize);