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