Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
SimpleNetworkInterfaceImpl.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/ILanEventHandler.h"
10#include "mc/deps/nether_net/INetherNetTransportInterface.h"
11#include "mc/deps/nether_net/ISignalingEventHandler.h"
12#include "mc/deps/nether_net/SignalingChannelId.h"
13#include "mc/deps/nether_net/utils/ErrorOr.h"
14#include "mc/external/webrtc/PeerConnectionInterface.h"
15
16// auto generated forward declare list
17// clang-format off
18namespace Bedrock::PubSub { class Subscription; }
19namespace NetherNet { class CandidateAdd; }
20namespace NetherNet { class ConnectError; }
21namespace NetherNet { class ConnectRequest; }
22namespace NetherNet { class ConnectResponse; }
23namespace NetherNet { class IIdentityAssertionGenerator; }
24namespace NetherNet { class INetherNetTransportInterfaceCallbacks; }
25namespace NetherNet { class ISignalingInterface; }
26namespace NetherNet { struct NetworkID; }
27namespace NetherNet { struct SessionState; }
28namespace NetherNet { struct StunRelayServer; }
29namespace NetherNet { struct TransportConfiguration; }
30namespace NetherNet::LanEvents { struct DiscoveryRequest; }
31namespace NetherNet::LanEvents { struct DiscoveryResponse; }
32namespace NetherNet::LanEvents { struct MessageReceived; }
33namespace NetherNet::SignalingEvents { struct MessageReceived; }
34// clang-format on
35
36namespace NetherNet {
37
38class SimpleNetworkInterfaceImpl : public ::NetherNet::ContextProxy,
42public:
43 // member variables
44 // NOLINTBEGIN
60 // NOLINTEND
61
62public:
63 // prevent constructor by default
64 SimpleNetworkInterfaceImpl& operator=(SimpleNetworkInterfaceImpl const&);
65 SimpleNetworkInterfaceImpl(SimpleNetworkInterfaceImpl const&);
66 SimpleNetworkInterfaceImpl();
67
68public:
69 // virtual functions
70 // NOLINTBEGIN
71 virtual ~SimpleNetworkInterfaceImpl() /*override*/ = default;
72
73 virtual bool SendPacket(
75 uint64 connectionId,
76 ::std::string const& data,
77 ::NetherNet::ESendType eSendType
78 ) /*override*/;
79
80 virtual bool
81 IsPacketAvailable(::NetherNet::NetworkID remoteId, uint64 connectionId, uint* pcbMessageSize) /*override*/;
82
83 virtual bool ReadPacket(
85 uint64 connectionId,
86 void* pubDest,
87 uint cbDest,
88 uint* pcbMessageSize
89 ) /*override*/;
90
91 virtual bool OpenSessionWithUser(
92 ::NetherNet::NetworkID networkIDRemote,
93 ::std::shared_ptr<::NetherNet::IIdentityAssertionGenerator> identityGenerator
94 ) /*override*/;
95
96 virtual void
97 SetIdentityGenerator(::std::shared_ptr<::NetherNet::IIdentityAssertionGenerator> identityGenerator) /*override*/;
98
99 virtual bool CloseSessionWithUser(::NetherNet::NetworkID networkIDRemote, uint64 connectionId) /*override*/;
100
101 virtual bool GetSessionState(
102 ::NetherNet::NetworkID networkIDRemote,
103 uint64 connectionId,
104 ::NetherNet::SessionState* pConnectionState
105 ) /*override*/;
106
107 virtual void SetSignalingInterface(
108 ::std::shared_ptr<::NetherNet::ISignalingInterface> const& pWebRTCSignalingInterface
109 ) /*override*/;
110
111 virtual void SetRelayConfig(::std::vector<::NetherNet::StunRelayServer> const& config) /*override*/;
112
113 virtual ::Bedrock::PubSub::Subscription
114 RegisterEventHandler(::NetherNet::ISignalingEventHandler* handler) /*override*/;
115
116 virtual ::Bedrock::PubSub::Subscription RegisterEventHandler(::NetherNet::ILanEventHandler* handler) /*override*/;
117
118 virtual bool IsBroadcastDiscoveryEnabled() /*override*/;
119
120 virtual void EnableBroadcastDiscovery() /*override*/;
121
122 virtual void DisableBroadcastDiscovery() /*override*/;
123
124 virtual void AddLanHost(::NetherNet::NetworkID remote, ::std::string const& ip, int port) /*override*/;
125
126 virtual void RemoveLanHost(::NetherNet::NetworkID remote) /*override*/;
127
128 virtual void EnableLANSignaling() /*override*/;
129
130 virtual void DisableLANSignaling() /*override*/;
131
132 virtual void EnableTrickleIce() /*override*/;
133
134 virtual void DisableTrickleIce() /*override*/;
135
136 virtual void OnSignalingEvent(::NetherNet::SignalingEvents::MessageReceived const& event) /*override*/;
137
138 virtual void OnLanEvent(::NetherNet::LanEvents::MessageReceived const& event) /*override*/;
139
140 virtual void OnLanEvent(::NetherNet::LanEvents::DiscoveryRequest const& event) /*override*/;
141
142 virtual void OnLanEvent(::NetherNet::LanEvents::DiscoveryResponse const& event) /*override*/;
143 // NOLINTEND
144
145public:
146 // member functions
147 // NOLINTBEGIN
148 MCNAPI ::webrtc::PeerConnectionInterface::RTCConfiguration GetRTCConfig(::NetherNet::NetworkID peerId) const;
149
151
152 MCAPI void ReceiveFromSignalingChannel(
154 ::std::string_view message,
155 ::NetherNet::SignalingChannelId sourceChannel
156 );
157
158 MCAPI ::NetherNet::ErrorOr<void, ::NetherNet::ESessionError> SendToSignalingChannel(
159 ::NetherNet::NetworkID networkIDTo,
160 ::std::variant<
164 ::NetherNet::CandidateAdd> const& signal,
165 ::std::optional<::NetherNet::SignalingChannelId> preference
166 );
167
170 ::NetherNet::NetworkID const& networkID,
171 ::NetherNet::TransportConfiguration const& configuration
172 );
173 // NOLINTEND
174
175public:
176 // constructor thunks
177 // NOLINTBEGIN
178 MCNAPI void* $ctor(
180 ::NetherNet::NetworkID const& networkID,
181 ::NetherNet::TransportConfiguration const& configuration
182 );
183 // NOLINTEND
184
185public:
186 // virtual function thunks
187 // NOLINTBEGIN
188 MCNAPI bool $SendPacket(
189 ::NetherNet::NetworkID remoteId,
190 uint64 connectionId,
191 ::std::string const& data,
192 ::NetherNet::ESendType eSendType
193 );
194
195 MCNAPI bool $IsPacketAvailable(::NetherNet::NetworkID remoteId, uint64 connectionId, uint* pcbMessageSize);
196
197 MCNAPI bool
198 $ReadPacket(::NetherNet::NetworkID remoteId, uint64 connectionId, void* pubDest, uint cbDest, uint* pcbMessageSize);
199
201 ::NetherNet::NetworkID networkIDRemote,
202 ::std::shared_ptr<::NetherNet::IIdentityAssertionGenerator> identityGenerator
203 );
204
205 MCNAPI void $SetIdentityGenerator(::std::shared_ptr<::NetherNet::IIdentityAssertionGenerator> identityGenerator);
206
207 MCNAPI bool $CloseSessionWithUser(::NetherNet::NetworkID networkIDRemote, uint64 connectionId);
208
209 MCNAPI bool $GetSessionState(
210 ::NetherNet::NetworkID networkIDRemote,
211 uint64 connectionId,
212 ::NetherNet::SessionState* pConnectionState
213 );
214
215 MCNAPI void
216 $SetSignalingInterface(::std::shared_ptr<::NetherNet::ISignalingInterface> const& pWebRTCSignalingInterface);
217
218 MCNAPI void $SetRelayConfig(::std::vector<::NetherNet::StunRelayServer> const& config);
219
220 MCNAPI ::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ISignalingEventHandler* handler);
221
222 MCNAPI ::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ILanEventHandler* handler);
223
225
227
229
230 MCNAPI void $AddLanHost(::NetherNet::NetworkID remote, ::std::string const& ip, int port);
231
233
234 MCNAPI void $EnableLANSignaling();
235
236 MCNAPI void $DisableLANSignaling();
237
238 MCNAPI void $EnableTrickleIce();
239
240 MCNAPI void $DisableTrickleIce();
241
243
245
247
249
250
251 // NOLINTEND
252};
253
254} // namespace NetherNet
Definition Subscription.h:10
Definition CandidateAdd.h:7
Definition ConnectError.h:7
Definition ConnectRequest.h:7
Definition ConnectResponse.h:7
Definition ContextProxy.h:18
Definition IIdentityAssertionGenerator.h:7
Definition INetherNetTransportInterfaceCallbacks.h:20
Definition INetherNetTransportInterface.h:22
Definition ISignalingInterface.h:18
MCAPI void $AddLanHost(::NetherNet::NetworkID remote, ::std::string const &ip, int port)
MCAPI void $SetIdentityGenerator(::std::shared_ptr<::NetherNet::IIdentityAssertionGenerator > identityGenerator)
MCAPI void $OnSignalingEvent(::NetherNet::SignalingEvents::MessageReceived const &event)
MCAPI void $OnLanEvent(::NetherNet::LanEvents::DiscoveryRequest const &event)
MCAPI bool $IsPacketAvailable(::NetherNet::NetworkID remoteId, uint64 connectionId, uint *pcbMessageSize)
MCAPI bool $GetSessionState(::NetherNet::NetworkID networkIDRemote, uint64 connectionId, ::NetherNet::SessionState *pConnectionState)
MCAPI void $SetSignalingInterface(::std::shared_ptr<::NetherNet::ISignalingInterface > const &pWebRTCSignalingInterface)
MCAPI bool $ReadPacket(::NetherNet::NetworkID remoteId, uint64 connectionId, void *pubDest, uint cbDest, uint *pcbMessageSize)
MCAPI void $SetRelayConfig(::std::vector<::NetherNet::StunRelayServer > const &config)
MCAPI void $OnLanEvent(::NetherNet::LanEvents::DiscoveryResponse const &event)
MCAPI bool $OpenSessionWithUser(::NetherNet::NetworkID networkIDRemote, ::std::shared_ptr<::NetherNet::IIdentityAssertionGenerator > identityGenerator)
MCAPI SimpleNetworkInterfaceImpl(::NetherNet::ContextProxy const &ctx, ::NetherNet::NetworkID const &networkID, ::NetherNet::TransportConfiguration const &configuration)
MCAPI::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ILanEventHandler *handler)
MCAPI void * $ctor(::NetherNet::ContextProxy const &ctx, ::NetherNet::NetworkID const &networkID, ::NetherNet::TransportConfiguration const &configuration)
MCAPI::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ISignalingEventHandler *handler)
MCAPI void Initialize(::NetherNet::INetherNetTransportInterfaceCallbacks *pCallbacks)
MCAPI bool $SendPacket(::NetherNet::NetworkID remoteId, uint64 connectionId, ::std::string const &data, ::NetherNet::ESendType eSendType)
MCAPI void $OnLanEvent(::NetherNet::LanEvents::MessageReceived const &event)
MCAPI bool $CloseSessionWithUser(::NetherNet::NetworkID networkIDRemote, uint64 connectionId)
MCAPI::webrtc::PeerConnectionInterface::RTCConfiguration GetRTCConfig(::NetherNet::NetworkID peerId) const
MCAPI void $RemoveLanHost(::NetherNet::NetworkID remote)
Definition ILanEventHandler.h:15
Definition ISignalingEventHandler.h:12
Definition DiscoveryRequest.h:7
Definition DiscoveryResponse.h:7
Definition MessageReceived.h:7
Definition NetworkID.h:17
Definition SessionState.h:7
Definition MessageReceived.h:7
Definition StunRelayServer.h:7
Definition TransportConfiguration.h:11
Definition ctx.h:5
Definition Alias.h:14