LeviLamina
Loading...
Searching...
No Matches
TurnPort.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/webrtc/DiffServCodePoint.h"
7#include "mc/external/webrtc/Port.h"
8#include "mc/external/webrtc/PortInterface.h"
9#include "mc/external/webrtc/ProtocolType.h"
10#include "mc/external/webrtc/Socket.h"
11#include "mc/external/webrtc/TlsCertPolicy.h"
12
13// auto generated forward declare list
14// clang-format off
15namespace webrtc { class AsyncPacketSocket; }
16namespace webrtc { class Candidate; }
17namespace webrtc { class Connection; }
18namespace webrtc { class ReceivedIpPacket; }
19namespace webrtc { class SSLCertificateVerifier; }
20namespace webrtc { class SocketAddress; }
21namespace webrtc { class StunMessage; }
22namespace webrtc { class StunRequest; }
23namespace webrtc { class TurnCustomizer; }
24namespace webrtc { class TurnEntry; }
25namespace webrtc { struct AsyncSocketPacketOptions; }
26namespace webrtc { struct CreateRelayPortArgs; }
27namespace webrtc { struct ProtocolAddress; }
28namespace webrtc { struct RelayCredentials; }
29namespace webrtc { struct SentPacketInfo; }
30// clang-format on
31
32namespace webrtc {
33
34class TurnPort : public ::webrtc::Port {
35public:
36 // TurnPort inner types declare
37 // clang-format off
38 class CallbacksForTest;
39 // clang-format on
40
41 // TurnPort inner types define
42 enum class PortState : int {
43 Connecting = 0,
44 Connected = 1,
45 Ready = 2,
46 Receiveonly = 3,
47 Disconnected = 4,
48 };
49
51 public:
52 // virtual functions
53 // NOLINTBEGIN
54 virtual ~CallbacksForTest() = default;
55
56 virtual void OnTurnCreatePermissionResult(int) = 0;
57
58 virtual void OnTurnRefreshResult(int) = 0;
59
60 virtual void OnTurnPortClosed() = 0;
61 // NOLINTEND
62 };
63
64public:
65 // member variables
66 // NOLINTBEGIN
93 // NOLINTEND
94
95public:
96 // prevent constructor by default
97 TurnPort& operator=(TurnPort const&);
98 TurnPort(TurnPort const&);
99 TurnPort();
100
101public:
102 // virtual functions
103 // NOLINTBEGIN
104 virtual ~TurnPort() /*override*/;
105
106 virtual ::webrtc::ProtocolType GetProtocol() const /*override*/;
107
108 virtual ::webrtc::TlsCertPolicy GetTlsCertPolicy() const;
109
110 virtual void SetTlsCertPolicy(::webrtc::TlsCertPolicy tls_cert_policy);
111
112 virtual ::std::vector<::std::string> GetTlsAlpnProtocols() const;
113
114 virtual ::std::vector<::std::string> GetTlsEllipticCurves() const;
115
116 virtual void PrepareAddress() /*override*/;
117
118 virtual ::webrtc::Connection* CreateConnection(
119 ::webrtc::Candidate const& remote_candidate,
120 ::webrtc::PortInterface::CandidateOrigin origin
121 ) /*override*/;
122
123 virtual int SendTo(
124 void const* data,
125 uint64 size,
126 ::webrtc::SocketAddress const& addr,
127 ::webrtc::AsyncSocketPacketOptions const& options,
128 bool payload
129 ) /*override*/;
130
131 virtual int SetOption(::webrtc::Socket::Option opt, int value) /*override*/;
132
133 virtual int GetOption(::webrtc::Socket::Option opt, int* value) /*override*/;
134
135 virtual int GetError() /*override*/;
136
137 virtual bool
138 HandleIncomingPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet) /*override*/;
139
140 virtual bool CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const& addr) const /*override*/;
141
142 virtual void SendBindingErrorResponse(
143 ::webrtc::StunMessage* message,
144 ::webrtc::SocketAddress const& addr,
145 int error_code,
146 ::std::string_view reason
147 ) /*override*/;
148
149 virtual void OnReadPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet);
150
151 virtual void
152 OnSentPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::SentPacketInfo const& sent_packet) /*override*/;
153
154 virtual void OnReadyToSend(::webrtc::AsyncPacketSocket* socket);
155
156 virtual bool SupportsProtocol(::std::string_view protocol) const /*override*/;
157
158 virtual void HandleConnectionDestroyed(::webrtc::Connection* conn) /*override*/;
159
160 virtual ::webrtc::DiffServCodePoint StunDscpValue() const /*override*/;
161 // NOLINTEND
162
163public:
164 // member functions
165 // NOLINTBEGIN
166 MCNAPI void AddRequestAuthInfo(::webrtc::StunMessage* msg);
167
168 MCNAPI void Close();
169
170 MCNAPI bool CreateOrRefreshEntry(::webrtc::Connection* conn, int channel_number);
171
173
174 MCNAPI void DispatchPacket(
175 char const* data,
176 uint64 size,
177 ::webrtc::SocketAddress const& remote_addr,
178 ::webrtc::ProtocolType proto,
179 int64 packet_time_us
180 );
181
182 MCNAPI ::webrtc::TurnEntry* FindEntry(::webrtc::SocketAddress const& addr) const;
183
184 MCNAPI ::webrtc::SocketAddress GetLocalAddress() const;
185
186 MCNAPI void HandleChannelData(ushort channel_id, char const* data, uint64 size, int64 packet_time_us);
187
188 MCNAPI void HandleDataIndication(char const* data, uint64 size, int64 packet_time_us);
189
190 MCNAPI void OnAllocateError(int error_code, ::std::string_view reason);
191
192 MCNAPI void OnAllocateMismatch();
193
195
196 MCNAPI void OnRefreshError();
197
198 MCNAPI void OnSendStunPacket(void const* data, uint64 size, ::webrtc::StunRequest* request);
199
200 MCNAPI void OnSocketConnect(::webrtc::AsyncPacketSocket* socket);
201
202 MCNAPI ::std::string ReconstructServerUrl();
203
204 MCNAPI void ResolveTurnAddress(::webrtc::SocketAddress const& address);
205
206 MCNAPI bool ScheduleRefresh(uint lifetime);
207
208 MCNAPI bool SetAlternateServer(::webrtc::SocketAddress const& address);
209
210 MCNAPI void SetTurnLoggingId(::std::string_view turn_logging_id);
211
212 MCNAPI TurnPort(
213 ::webrtc::Port::PortParametersRef const& args,
214 ::std::shared_ptr<::webrtc::AsyncPacketSocket> socket,
215 ::webrtc::ProtocolAddress const& server_address,
216 ::webrtc::RelayCredentials const& credentials,
217 int server_priority,
218 ::std::vector<::std::string> const& tls_alpn_protocols,
219 ::std::vector<::std::string> const& tls_elliptic_curves,
220 ::webrtc::TurnCustomizer* customizer,
221 ::webrtc::SSLCertificateVerifier* tls_cert_verifier
222 );
223
224 MCNAPI TurnPort(
225 ::webrtc::Port::PortParametersRef const& args,
226 ushort min_port,
227 ushort max_port,
228 ::webrtc::ProtocolAddress const& server_address,
229 ::webrtc::RelayCredentials const& credentials,
230 int server_priority,
231 ::std::vector<::std::string> const& tls_alpn_protocols,
232 ::std::vector<::std::string> const& tls_elliptic_curves,
233 ::webrtc::TurnCustomizer* customizer,
234 ::webrtc::SSLCertificateVerifier* tls_cert_verifier
235 );
236
237 MCNAPI bool UpdateNonce(::webrtc::StunMessage* response);
238
239 MCNAPI void set_nonce(::std::string_view nonce);
240
241 MCNAPI void set_realm(::std::string_view realm);
242 // NOLINTEND
243
244public:
245 // static functions
246 // NOLINTBEGIN
247 MCNAPI static bool AllowedTurnPort(int port);
248
249 MCNAPI static ::std::unique_ptr<::webrtc::TurnPort>
250 Create(::webrtc::CreateRelayPortArgs const& args, ::std::shared_ptr<::webrtc::AsyncPacketSocket> socket);
251
252 MCNAPI static ::std::unique_ptr<::webrtc::TurnPort>
253 Create(::webrtc::CreateRelayPortArgs const& args, int min_port, int max_port);
254
255 MCNAPI static bool Validate(::webrtc::CreateRelayPortArgs const& args);
256 // NOLINTEND
257
258public:
259 // constructor thunks
260 // NOLINTBEGIN
261 MCNAPI void* $ctor(
262 ::webrtc::Port::PortParametersRef const& args,
263 ::std::shared_ptr<::webrtc::AsyncPacketSocket> socket,
264 ::webrtc::ProtocolAddress const& server_address,
265 ::webrtc::RelayCredentials const& credentials,
266 int server_priority,
267 ::std::vector<::std::string> const& tls_alpn_protocols,
268 ::std::vector<::std::string> const& tls_elliptic_curves,
269 ::webrtc::TurnCustomizer* customizer,
270 ::webrtc::SSLCertificateVerifier* tls_cert_verifier
271 );
272
273 MCNAPI void* $ctor(
274 ::webrtc::Port::PortParametersRef const& args,
275 ushort min_port,
276 ushort max_port,
277 ::webrtc::ProtocolAddress const& server_address,
278 ::webrtc::RelayCredentials const& credentials,
279 int server_priority,
280 ::std::vector<::std::string> const& tls_alpn_protocols,
281 ::std::vector<::std::string> const& tls_elliptic_curves,
282 ::webrtc::TurnCustomizer* customizer,
283 ::webrtc::SSLCertificateVerifier* tls_cert_verifier
284 );
285 // NOLINTEND
286
287public:
288 // destructor thunk
289 // NOLINTBEGIN
290 MCNAPI void $dtor();
291 // NOLINTEND
292
293public:
294 // virtual function thunks
295 // NOLINTBEGIN
296 MCNAPI ::webrtc::ProtocolType $GetProtocol() const;
297
298 MCNAPI ::webrtc::TlsCertPolicy $GetTlsCertPolicy() const;
299
300 MCNAPI void $SetTlsCertPolicy(::webrtc::TlsCertPolicy tls_cert_policy);
301
302 MCNAPI ::std::vector<::std::string> $GetTlsAlpnProtocols() const;
303
304 MCNAPI ::std::vector<::std::string> $GetTlsEllipticCurves() const;
305
306 MCNAPI void $PrepareAddress();
307
308 MCNAPI ::webrtc::Connection*
309 $CreateConnection(::webrtc::Candidate const& remote_candidate, ::webrtc::PortInterface::CandidateOrigin origin);
310
311 MCNAPI int $SendTo(
312 void const* data,
313 uint64 size,
314 ::webrtc::SocketAddress const& addr,
315 ::webrtc::AsyncSocketPacketOptions const& options,
316 bool payload
317 );
318
319 MCNAPI int $SetOption(::webrtc::Socket::Option opt, int value);
320
321 MCNAPI int $GetOption(::webrtc::Socket::Option opt, int* value);
322
323 MCNAPI int $GetError();
324
325 MCNAPI bool $HandleIncomingPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet);
326
327 MCNAPI bool $CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const& addr) const;
328
330 ::webrtc::StunMessage* message,
331 ::webrtc::SocketAddress const& addr,
332 int error_code,
333 ::std::string_view reason
334 );
335
336 MCNAPI void $OnReadPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet);
337
338 MCNAPI void $OnSentPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::SentPacketInfo const& sent_packet);
339
340 MCNAPI void $OnReadyToSend(::webrtc::AsyncPacketSocket* socket);
341
342 MCNAPI bool $SupportsProtocol(::std::string_view protocol) const;
343
344 MCNAPI void $HandleConnectionDestroyed(::webrtc::Connection* conn);
345
346 MCNAPI ::webrtc::DiffServCodePoint $StunDscpValue() const;
347
348
349 // NOLINTEND
350
351public:
352 // vftables
353 // NOLINTBEGIN
354 MCNAPI static void** $vftableForPortInterface();
355
356 MCNAPI static void** $vftableForHasSlots();
357 // NOLINTEND
358};
359
360} // namespace webrtc
Definition Option.h:22
Definition AsyncPacketSocket.h:20
Definition Candidate.h:12
Definition Connection.h:35
Definition PortInterface.h:29
Definition Port.h:37
Definition ReceivedIpPacket.h:17
Definition SSLCertificateVerifier.h:12
Definition SocketAddress.h:11
Definition Socket.h:12
Definition StunMessage.h:24
Definition StunRequest.h:15
Definition TurnCustomizer.h:13
Definition TurnEntry.h:16
Definition TurnPort.h:50
MCAPI void HandleChannelData(ushort channel_id, char const *data, uint64 size, int64 packet_time_us)
MCAPI void HandleDataIndication(char const *data, uint64 size, int64 packet_time_us)
static MCAPI bool AllowedTurnPort(int port)
static MCAPI void ** $vftableForPortInterface()
MCAPI void * $ctor(::webrtc::Port::PortParametersRef const &args, ::std::shared_ptr<::webrtc::AsyncPacketSocket > socket, ::webrtc::ProtocolAddress const &server_address, ::webrtc::RelayCredentials const &credentials, int server_priority, ::std::vector<::std::string > const &tls_alpn_protocols, ::std::vector<::std::string > const &tls_elliptic_curves, ::webrtc::TurnCustomizer *customizer, ::webrtc::SSLCertificateVerifier *tls_cert_verifier)
MCAPI int $GetOption(::webrtc::Socket::Option opt, int *value)
MCAPI bool CreateOrRefreshEntry(::webrtc::Connection *conn, int channel_number)
MCAPI void $dtor()
MCAPI int $SendTo(void const *data, uint64 size, ::webrtc::SocketAddress const &addr, ::webrtc::AsyncSocketPacketOptions const &options, bool payload)
MCAPI bool $CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const &addr) const
MCAPI void OnLocalNetworkAccessPermissionGranted()
MCAPI void $SendBindingErrorResponse(::webrtc::StunMessage *message, ::webrtc::SocketAddress const &addr, int error_code, ::std::string_view reason)
MCAPI void set_nonce(::std::string_view nonce)
MCAPI void $OnReadPacket(::webrtc::AsyncPacketSocket *socket, ::webrtc::ReceivedIpPacket const &packet)
MCAPI bool ScheduleRefresh(uint lifetime)
MCAPI::webrtc::TurnEntry * FindEntry(::webrtc::SocketAddress const &addr) const
MCAPI::webrtc::Connection * $CreateConnection(::webrtc::Candidate const &remote_candidate, ::webrtc::PortInterface::CandidateOrigin origin)
static MCAPI bool Validate(::webrtc::CreateRelayPortArgs const &args)
static MCAPI void ** $vftableForHasSlots()
MCAPI void $HandleConnectionDestroyed(::webrtc::Connection *conn)
static MCAPI ::std::unique_ptr<::webrtc::TurnPort > Create(::webrtc::CreateRelayPortArgs const &args, ::std::shared_ptr<::webrtc::AsyncPacketSocket > socket)
MCAPI bool CreateTurnClientSocket()
MCAPI ::std::vector<::std::string > $GetTlsEllipticCurves() const
MCAPI void OnAllocateError(int error_code, ::std::string_view reason)
MCAPI int $SetOption(::webrtc::Socket::Option opt, int value)
MCAPI void ResolveTurnAddress(::webrtc::SocketAddress const &address)
MCAPI bool $HandleIncomingPacket(::webrtc::AsyncPacketSocket *socket, ::webrtc::ReceivedIpPacket const &packet)
MCAPI void OnAllocateMismatch()
MCAPI void set_realm(::std::string_view realm)
MCAPI ::std::vector<::std::string > $GetTlsAlpnProtocols() const
MCAPI bool $SupportsProtocol(::std::string_view protocol) const
MCAPI::webrtc::DiffServCodePoint $StunDscpValue() const
MCAPI::webrtc::TlsCertPolicy $GetTlsCertPolicy() const
MCAPI::webrtc::SocketAddress GetLocalAddress() const
MCAPI void $OnSentPacket(::webrtc::AsyncPacketSocket *socket, ::webrtc::SentPacketInfo const &sent_packet)
MCAPI void $PrepareAddress()
MCAPI void DispatchPacket(char const *data, uint64 size, ::webrtc::SocketAddress const &remote_addr, ::webrtc::ProtocolType proto, int64 packet_time_us)
MCAPI void Close()
MCAPI int $GetError()
MCAPI void OnRefreshError()
MCAPI void AddRequestAuthInfo(::webrtc::StunMessage *msg)
MCAPI::std::string ReconstructServerUrl()
MCAPI void OnSocketConnect(::webrtc::AsyncPacketSocket *socket)
MCAPI bool UpdateNonce(::webrtc::StunMessage *response)
MCAPI void OnSendStunPacket(void const *data, uint64 size, ::webrtc::StunRequest *request)
MCAPI::webrtc::ProtocolType $GetProtocol() const
MCAPI void $SetTlsCertPolicy(::webrtc::TlsCertPolicy tls_cert_policy)
MCAPI void $OnReadyToSend(::webrtc::AsyncPacketSocket *socket)
MCAPI void SetTurnLoggingId(::std::string_view turn_logging_id)
MCAPI bool SetAlternateServer(::webrtc::SocketAddress const &address)
STL namespace.
Definition Alias.h:14
Definition AsyncSocketPacketOptions.h:10
Definition CreateRelayPortArgs.h:7
Definition ProtocolAddress.h:7
Definition RelayCredentials.h:7
Definition SentPacketInfo.h:12