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