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/cricket/Port.h"
7#include "mc/external/cricket/PortInterface.h"
8#include "mc/external/cricket/ProtocolType.h"
9#include "mc/external/cricket/TlsCertPolicy.h"
10#include "mc/external/rtc/DiffServCodePoint.h"
11#include "mc/external/rtc/Socket.h"
12
13// auto generated forward declare list
14// clang-format off
15namespace cricket { class Candidate; }
16namespace cricket { class Connection; }
17namespace cricket { class StunMessage; }
18namespace cricket { class StunRequest; }
19namespace cricket { class TurnEntry; }
20namespace cricket { struct CreateRelayPortArgs; }
21namespace cricket { struct ProtocolAddress; }
22namespace cricket { struct RelayCredentials; }
23namespace rtc { class AsyncPacketSocket; }
24namespace rtc { class IPAddress; }
25namespace rtc { class Network; }
26namespace rtc { class PacketSocketFactory; }
27namespace rtc { class ReceivedPacket; }
28namespace rtc { class SSLCertificateVerifier; }
29namespace rtc { class SocketAddress; }
30namespace rtc { struct PacketOptions; }
31namespace rtc { struct SentPacket; }
32namespace webrtc { class FieldTrialsView; }
33namespace webrtc { class TaskQueueBase; }
34namespace webrtc { class TurnCustomizer; }
35// clang-format on
36
37namespace cricket {
38
39class TurnPort : public ::cricket::Port {
40public:
41 // TurnPort inner types declare
42 // clang-format off
43 class CallbacksForTest;
44 // clang-format on
45
46 // TurnPort inner types define
47 enum class PortState : int {
48 Connecting = 0,
49 Connected = 1,
50 Ready = 2,
51 Receiveonly = 3,
52 Disconnected = 4,
53 };
54
56 public:
57 // virtual functions
58 // NOLINTBEGIN
59 // vIndex: 0
60 virtual ~CallbacksForTest() = default;
61
62 // vIndex: 1
63 virtual void OnTurnCreatePermissionResult(int) = 0;
64
65 // vIndex: 2
66 virtual void OnTurnRefreshResult(int) = 0;
67
68 // vIndex: 3
69 virtual void OnTurnPortClosed() = 0;
70 // NOLINTEND
71
72 public:
73 // virtual function thunks
74 // NOLINTBEGIN
75
76 // NOLINTEND
77 };
78
79public:
80 // member variables
81 // NOLINTBEGIN
108 // NOLINTEND
109
110public:
111 // prevent constructor by default
112 TurnPort& operator=(TurnPort const&);
113 TurnPort(TurnPort const&);
114 TurnPort();
115
116public:
117 // virtual functions
118 // NOLINTBEGIN
119 // vIndex: 0
120 virtual ~TurnPort() /*override*/;
121
122 // vIndex: 15
123 virtual ::cricket::ProtocolType GetProtocol() const /*override*/;
124
125 // vIndex: 46
126 virtual ::cricket::TlsCertPolicy GetTlsCertPolicy() const;
127
128 // vIndex: 47
129 virtual void SetTlsCertPolicy(::cricket::TlsCertPolicy tls_cert_policy);
130
131 // vIndex: 48
132 virtual ::std::vector<::std::string> GetTlsAlpnProtocols() const;
133
134 // vIndex: 49
135 virtual ::std::vector<::std::string> GetTlsEllipticCurves() const;
136
137 // vIndex: 9
138 virtual void PrepareAddress() /*override*/;
139
140 // vIndex: 11
141 virtual ::cricket::Connection* CreateConnection(
142 ::cricket::Candidate const& remote_candidate,
143 ::cricket::PortInterface::CandidateOrigin origin
144 ) /*override*/;
145
146 // vIndex: 17
147 virtual int SendTo(
148 void const* data,
149 uint64 size,
150 ::rtc::SocketAddress const& addr,
151 ::rtc::PacketOptions const& options,
152 bool payload
153 ) /*override*/;
154
155 // vIndex: 12
156 virtual int SetOption(::rtc::Socket::Option opt, int value) /*override*/;
157
158 // vIndex: 13
159 virtual int GetOption(::rtc::Socket::Option opt, int* value) /*override*/;
160
161 // vIndex: 14
162 virtual int GetError() /*override*/;
163
164 // vIndex: 41
165 virtual bool
166 HandleIncomingPacket(::rtc::AsyncPacketSocket* socket, ::rtc::ReceivedPacket const& packet) /*override*/;
167
168 // vIndex: 42
169 virtual bool CanHandleIncomingPacketsFrom(::rtc::SocketAddress const& addr) const /*override*/;
170
171 // vIndex: 18
172 virtual void SendBindingErrorResponse(
173 ::cricket::StunMessage* message,
174 ::rtc::SocketAddress const& addr,
175 int error_code,
176 ::std::string_view reason
177 ) /*override*/;
178
179 // vIndex: 50
180 virtual void OnReadPacket(::rtc::AsyncPacketSocket* socket, ::rtc::ReceivedPacket const& packet);
181
182 // vIndex: 43
183 virtual void OnSentPacket(::rtc::AsyncPacketSocket* socket, ::rtc::SentPacket const& sent_packet) /*override*/;
184
185 // vIndex: 51
186 virtual void OnReadyToSend(::rtc::AsyncPacketSocket* socket);
187
188 // vIndex: 8
189 virtual bool SupportsProtocol(::std::string_view protocol) const /*override*/;
190
191 // vIndex: 45
192 virtual void HandleConnectionDestroyed(::cricket::Connection* conn) /*override*/;
193
194 // vIndex: 35
195 virtual ::rtc::DiffServCodePoint StunDscpValue() const /*override*/;
196 // NOLINTEND
197
198public:
199 // member functions
200 // NOLINTBEGIN
201 MCNAPI void AddRequestAuthInfo(::cricket::StunMessage* msg);
202
203 MCNAPI void Close();
204
205 MCNAPI bool CreateOrRefreshEntry(::cricket::Connection* conn, int channel_number);
206
208
209 MCNAPI void DispatchPacket(
210 char const* data,
211 uint64 size,
212 ::rtc::SocketAddress const& remote_addr,
213 ::cricket::ProtocolType proto,
214 int64 packet_time_us
215 );
216
217 MCNAPI bool FailAndPruneConnection(::rtc::SocketAddress const& address);
218
219 MCNAPI ::cricket::TurnEntry* FindEntry(::rtc::SocketAddress const& addr) const;
220
221 MCNAPI ::cricket::TurnEntry* FindEntry(int channel_id) const;
222
223 MCNAPI ::rtc::SocketAddress GetLocalAddress() const;
224
225 MCNAPI void HandleChannelData(int channel_id, char const* data, uint64 size, int64 packet_time_us);
226
227 MCNAPI void HandleDataIndication(char const* data, uint64 size, int64 packet_time_us);
228
229 MCNAPI void HandleRefreshError();
230
231 MCNAPI bool HasPermission(::rtc::IPAddress const& ipaddr) const;
232
233 MCNAPI void MaybeAddTurnLoggingId(::cricket::StunMessage* msg);
234
235 MCNAPI void OnAllocateError(int error_code, ::std::string_view reason);
236
237 MCNAPI void OnAllocateMismatch();
238
240
241 MCNAPI void OnAllocateSuccess(::rtc::SocketAddress const& address, ::rtc::SocketAddress const& stun_address);
242
243 MCNAPI void OnRefreshError();
244
245 MCNAPI void OnSendStunPacket(void const* data, uint64 size, ::cricket::StunRequest* request);
246
247 MCNAPI void OnSocketClose(::rtc::AsyncPacketSocket* socket, int error);
248
249 MCNAPI void OnSocketConnect(::rtc::AsyncPacketSocket* socket);
250
251 MCNAPI ::std::string ReconstructServerUrl();
252
253 MCNAPI void Release();
254
255 MCNAPI void ResetNonce();
256
257 MCNAPI void ResolveTurnAddress(::rtc::SocketAddress const& address);
258
259 MCNAPI bool ScheduleRefresh(uint lifetime);
260
261 MCNAPI int Send(void const* data, uint64 len, ::rtc::PacketOptions const& options);
262
263 MCNAPI void SendRequest(::cricket::StunRequest* req, int delay);
264
265 MCNAPI bool SetAlternateServer(::rtc::SocketAddress const& address);
266
267 MCNAPI void SetTurnLoggingId(::std::string_view turn_logging_id);
268
269 MCNAPI void TryAlternateServer();
270
271 MCNAPI bool TurnCustomizerAllowChannelData(void const* data, uint64 size, bool payload);
272
274
275 MCNAPI TurnPort(
276 ::webrtc::TaskQueueBase* thread,
277 ::rtc::PacketSocketFactory* factory,
278 ::rtc::Network const* network,
279 ::std::shared_ptr<::rtc::AsyncPacketSocket> socket,
280 ::std::string_view username,
281 ::std::string_view password,
282 ::cricket::ProtocolAddress const& server_address,
283 ::cricket::RelayCredentials const& credentials,
284 int server_priority,
285 ::std::vector<::std::string> const& tls_alpn_protocols,
286 ::std::vector<::std::string> const& tls_elliptic_curves,
287 ::webrtc::TurnCustomizer* customizer,
288 ::rtc::SSLCertificateVerifier* tls_cert_verifier,
289 ::webrtc::FieldTrialsView const* field_trials
290 );
291
292 MCNAPI TurnPort(
293 ::webrtc::TaskQueueBase* thread,
294 ::rtc::PacketSocketFactory* factory,
295 ::rtc::Network const* network,
296 ushort min_port,
297 ushort max_port,
298 ::std::string_view username,
299 ::std::string_view password,
300 ::cricket::ProtocolAddress const& server_address,
301 ::cricket::RelayCredentials const& credentials,
302 int server_priority,
303 ::std::vector<::std::string> const& tls_alpn_protocols,
304 ::std::vector<::std::string> const& tls_elliptic_curves,
305 ::webrtc::TurnCustomizer* customizer,
306 ::rtc::SSLCertificateVerifier* tls_cert_verifier,
307 ::webrtc::FieldTrialsView const* field_trials
308 );
309
310 MCNAPI void UpdateHash();
311
312 MCNAPI bool UpdateNonce(::cricket::StunMessage* response);
313
314 MCNAPI void set_nonce(::std::string_view nonce);
315
316 MCNAPI void set_realm(::std::string_view realm);
317 // NOLINTEND
318
319public:
320 // static functions
321 // NOLINTBEGIN
322 MCNAPI static bool AllowedTurnPort(int port, ::webrtc::FieldTrialsView const* field_trials);
323
324 MCNAPI static ::std::unique_ptr<::cricket::TurnPort>
325 Create(::cricket::CreateRelayPortArgs const& args, ::std::shared_ptr<::rtc::AsyncPacketSocket> socket);
326
327 MCNAPI static bool Validate(::cricket::CreateRelayPortArgs const& args);
328 // NOLINTEND
329
330public:
331 // constructor thunks
332 // NOLINTBEGIN
333 MCNAPI void* $ctor(
334 ::webrtc::TaskQueueBase* thread,
335 ::rtc::PacketSocketFactory* factory,
336 ::rtc::Network const* network,
337 ::std::shared_ptr<::rtc::AsyncPacketSocket> socket,
338 ::std::string_view username,
339 ::std::string_view password,
340 ::cricket::ProtocolAddress const& server_address,
341 ::cricket::RelayCredentials const& credentials,
342 int server_priority,
343 ::std::vector<::std::string> const& tls_alpn_protocols,
344 ::std::vector<::std::string> const& tls_elliptic_curves,
345 ::webrtc::TurnCustomizer* customizer,
346 ::rtc::SSLCertificateVerifier* tls_cert_verifier,
347 ::webrtc::FieldTrialsView const* field_trials
348 );
349
350 MCNAPI void* $ctor(
351 ::webrtc::TaskQueueBase* thread,
352 ::rtc::PacketSocketFactory* factory,
353 ::rtc::Network const* network,
354 ushort min_port,
355 ushort max_port,
356 ::std::string_view username,
357 ::std::string_view password,
358 ::cricket::ProtocolAddress const& server_address,
359 ::cricket::RelayCredentials const& credentials,
360 int server_priority,
361 ::std::vector<::std::string> const& tls_alpn_protocols,
362 ::std::vector<::std::string> const& tls_elliptic_curves,
363 ::webrtc::TurnCustomizer* customizer,
364 ::rtc::SSLCertificateVerifier* tls_cert_verifier,
365 ::webrtc::FieldTrialsView const* field_trials
366 );
367 // NOLINTEND
368
369public:
370 // destructor thunk
371 // NOLINTBEGIN
372 MCNAPI void $dtor();
373 // NOLINTEND
374
375public:
376 // virtual function thunks
377 // NOLINTBEGIN
378 MCNAPI ::cricket::ProtocolType $GetProtocol() const;
379
380 MCNAPI ::cricket::TlsCertPolicy $GetTlsCertPolicy() const;
381
382 MCNAPI void $SetTlsCertPolicy(::cricket::TlsCertPolicy tls_cert_policy);
383
384 MCNAPI ::std::vector<::std::string> $GetTlsAlpnProtocols() const;
385
386 MCNAPI ::std::vector<::std::string> $GetTlsEllipticCurves() const;
387
388 MCNAPI void $PrepareAddress();
389
390 MCNAPI ::cricket::Connection*
391 $CreateConnection(::cricket::Candidate const& remote_candidate, ::cricket::PortInterface::CandidateOrigin origin);
392
393 MCNAPI int $SendTo(
394 void const* data,
395 uint64 size,
396 ::rtc::SocketAddress const& addr,
397 ::rtc::PacketOptions const& options,
398 bool payload
399 );
400
401 MCNAPI int $SetOption(::rtc::Socket::Option opt, int value);
402
403 MCNAPI int $GetOption(::rtc::Socket::Option opt, int* value);
404
405 MCNAPI int $GetError();
406
407 MCNAPI bool $HandleIncomingPacket(::rtc::AsyncPacketSocket* socket, ::rtc::ReceivedPacket const& packet);
408
409 MCNAPI bool $CanHandleIncomingPacketsFrom(::rtc::SocketAddress const& addr) const;
410
412 ::cricket::StunMessage* message,
413 ::rtc::SocketAddress const& addr,
414 int error_code,
415 ::std::string_view reason
416 );
417
418 MCNAPI void $OnReadPacket(::rtc::AsyncPacketSocket* socket, ::rtc::ReceivedPacket const& packet);
419
420 MCNAPI void $OnSentPacket(::rtc::AsyncPacketSocket* socket, ::rtc::SentPacket const& sent_packet);
421
422 MCNAPI void $OnReadyToSend(::rtc::AsyncPacketSocket* socket);
423
424 MCNAPI bool $SupportsProtocol(::std::string_view protocol) const;
425
426 MCNAPI void $HandleConnectionDestroyed(::cricket::Connection* conn);
427
428 MCNAPI ::rtc::DiffServCodePoint $StunDscpValue() const;
429 // NOLINTEND
430
431public:
432 // vftables
433 // NOLINTBEGIN
434 MCNAPI static void** $vftableForHasSlots();
435
436 MCNAPI static void** $vftableForPortInterface();
437 // NOLINTEND
438};
439
440} // namespace cricket
Definition Option.h:18
Definition Candidate.h:15
Definition Connection.h:38
Definition PortInterface.h:29
MCAPI void * $ctor()
Definition Port.h:36
MCAPI void OnReadyToSend()
Definition StunMessage.h:23
Definition StunRequest.h:14
Definition TurnEntry.h:21
Definition TurnPort.h:55
Definition TurnPort.h:39
MCAPI void $dtor()
MCAPI void OnSendStunPacket(void const *data, uint64 size, ::cricket::StunRequest *request)
MCAPI void OnSocketClose(::rtc::AsyncPacketSocket *socket, int error)
MCAPI void $OnReadPacket(::rtc::AsyncPacketSocket *socket, ::rtc::ReceivedPacket const &packet)
MCAPI void set_nonce(::std::string_view nonce)
MCAPI bool FailAndPruneConnection(::rtc::SocketAddress const &address)
MCAPI void OnAllocateRequestTimeout()
MCAPI void $OnReadyToSend(::rtc::AsyncPacketSocket *socket)
MCAPI::std::string ReconstructServerUrl()
MCAPI void OnRefreshError()
MCAPI void OnAllocateMismatch()
MCAPI ::std::vector<::std::string > $GetTlsEllipticCurves() const
MCAPI void OnAllocateError(int error_code, ::std::string_view reason)
MCAPI bool CreateOrRefreshEntry(::cricket::Connection *conn, int channel_number)
MCAPI void OnSocketConnect(::rtc::AsyncPacketSocket *socket)
MCAPI::cricket::ProtocolType $GetProtocol() const
MCAPI void $OnSentPacket(::rtc::AsyncPacketSocket *socket, ::rtc::SentPacket const &sent_packet)
MCAPI int $GetOption(::rtc::Socket::Option opt, int *value)
MCAPI bool UpdateNonce(::cricket::StunMessage *response)
MCAPI void AddRequestAuthInfo(::cricket::StunMessage *msg)
MCAPI void TurnCustomizerMaybeModifyOutgoingStunMessage(::cricket::StunMessage *message)
MCAPI void OnAllocateSuccess(::rtc::SocketAddress const &address, ::rtc::SocketAddress const &stun_address)
MCAPI void SendRequest(::cricket::StunRequest *req, int delay)
MCAPI bool $SupportsProtocol(::std::string_view protocol) const
MCAPI void TryAlternateServer()
MCAPI bool TurnCustomizerAllowChannelData(void const *data, uint64 size, bool payload)
MCAPI void $PrepareAddress()
static MCAPI bool Validate(::cricket::CreateRelayPortArgs const &args)
MCAPI void ResetNonce()
MCAPI void set_realm(::std::string_view realm)
MCAPI int $SetOption(::rtc::Socket::Option opt, int value)
static MCAPI void ** $vftableForPortInterface()
MCAPI ::std::vector<::std::string > $GetTlsAlpnProtocols() const
MCAPI void SetTurnLoggingId(::std::string_view turn_logging_id)
MCAPI bool HasPermission(::rtc::IPAddress const &ipaddr) const
MCAPI void $SetTlsCertPolicy(::cricket::TlsCertPolicy tls_cert_policy)
MCAPI bool $CanHandleIncomingPacketsFrom(::rtc::SocketAddress const &addr) const
MCAPI void MaybeAddTurnLoggingId(::cricket::StunMessage *msg)
static MCAPI void ** $vftableForHasSlots()
MCAPI bool ScheduleRefresh(uint lifetime)
MCAPI void Close()
MCAPI void HandleChannelData(int channel_id, char const *data, uint64 size, int64 packet_time_us)
MCAPI int $SendTo(void const *data, uint64 size, ::rtc::SocketAddress const &addr, ::rtc::PacketOptions const &options, bool payload)
MCAPI void HandleRefreshError()
MCAPI bool SetAlternateServer(::rtc::SocketAddress const &address)
MCAPI::cricket::TurnEntry * FindEntry(::rtc::SocketAddress const &addr) const
MCAPI bool CreateTurnClientSocket()
MCAPI::rtc::DiffServCodePoint $StunDscpValue() const
MCAPI::cricket::Connection * $CreateConnection(::cricket::Candidate const &remote_candidate, ::cricket::PortInterface::CandidateOrigin origin)
MCAPI void HandleDataIndication(char const *data, uint64 size, int64 packet_time_us)
MCAPI void ResolveTurnAddress(::rtc::SocketAddress const &address)
MCAPI void $HandleConnectionDestroyed(::cricket::Connection *conn)
MCAPI::rtc::SocketAddress GetLocalAddress() const
MCAPI int Send(void const *data, uint64 len, ::rtc::PacketOptions const &options)
MCAPI void $SendBindingErrorResponse(::cricket::StunMessage *message, ::rtc::SocketAddress const &addr, int error_code, ::std::string_view reason)
static MCAPI bool AllowedTurnPort(int port, ::webrtc::FieldTrialsView const *field_trials)
MCAPI int $GetError()
MCAPI void UpdateHash()
MCAPI void Release()
MCAPI::cricket::TlsCertPolicy $GetTlsCertPolicy() const
MCAPI void DispatchPacket(char const *data, uint64 size, ::rtc::SocketAddress const &remote_addr, ::cricket::ProtocolType proto, int64 packet_time_us)
MCAPI bool $HandleIncomingPacket(::rtc::AsyncPacketSocket *socket, ::rtc::ReceivedPacket const &packet)
STL namespace.
Definition CreateRelayPortArgs.h:7
Definition ProtocolAddress.h:7
Definition RelayCredentials.h:7
Definition Alias.h:14