LeviLamina
Loading...
Searching...
No Matches
Port.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/absl/AnyInvocable.h"
7#include "mc/external/sigslot/has_slots.h"
8#include "mc/external/sigslot/single_threaded.h"
9#include "mc/external/webrtc/DiffServCodePoint.h"
10#include "mc/external/webrtc/IceCandidateType.h"
11#include "mc/external/webrtc/IceRole.h"
12#include "mc/external/webrtc/LocalNetworkAccessPermissionStatus.h"
13#include "mc/external/webrtc/PortInterface.h"
14#include "mc/external/webrtc/ProtocolType.h"
15#include "mc/external/webrtc/WeakPtr.h"
16
17// auto generated forward declare list
18// clang-format off
19namespace webrtc { class AsyncPacketSocket; }
20namespace webrtc { class Candidate; }
21namespace webrtc { class Connection; }
22namespace webrtc { class IceMessage; }
23namespace webrtc { class Network; }
24namespace webrtc { class PacketSocketFactory; }
25namespace webrtc { class ReceivedIpPacket; }
26namespace webrtc { class SocketAddress; }
27namespace webrtc { class StunMessage; }
28namespace webrtc { class StunStats; }
29namespace webrtc { class TaskQueueBase; }
30namespace webrtc { struct IceCandidateErrorEvent; }
31namespace webrtc { struct PacketInfo; }
32namespace webrtc { struct SentPacketInfo; }
33// clang-format on
34
35namespace webrtc {
36
37class Port : public ::webrtc::PortInterface, public ::sigslot::has_slots<::sigslot::single_threaded> {
38public:
39 // Port inner types declare
40 // clang-format off
41 struct PortParametersRef;
42 // clang-format on
43
44 // Port inner types define
45 enum class State : int {
46 Init = 0,
47 KeepAliveUntilPruned = 1,
48 Pruned = 2,
49 };
50
51 struct PortParametersRef {
52 public:
53 // member variables
54 // NOLINTBEGIN
62 // NOLINTEND
63
64 public:
65 // prevent constructor by default
66 PortParametersRef& operator=(PortParametersRef const&);
67 PortParametersRef(PortParametersRef const&);
68 PortParametersRef();
69
70 public:
71 // member functions
72 // NOLINTBEGIN
73 MCAPI ~PortParametersRef();
74 // NOLINTEND
75
76 public:
77 // destructor thunk
78 // NOLINTBEGIN
79 MCFOLD void $dtor();
80 // NOLINTEND
81 };
82
83public:
84 // member variables
85 // NOLINTBEGIN
120 // NOLINTEND
121
122public:
123 // prevent constructor by default
124 Port& operator=(Port const&);
125 Port(Port const&);
126 Port();
127
128public:
129 // virtual functions
130 // NOLINTBEGIN
131 virtual ~Port() /*override*/;
132
133 virtual ::webrtc::IceCandidateType Type() const /*override*/;
134
135 virtual ::webrtc::Network const* Network() const /*override*/;
136
137 virtual ::webrtc::IceRole GetIceRole() const /*override*/;
138
139 virtual void SetIceRole(::webrtc::IceRole role) /*override*/;
140
141 virtual void SetIceTiebreaker(uint64 tiebreaker) /*override*/;
142
143 virtual uint64 IceTiebreaker() const /*override*/;
144
145 virtual bool SharedSocket() const /*override*/;
146
147 virtual ::webrtc::TaskQueueBase* thread() /*override*/;
148
149 virtual ::webrtc::PacketSocketFactory* socket_factory() const /*override*/;
150
151 virtual ::std::string const& content_name() const /*override*/;
152
153 virtual bool send_retransmit_count_attribute() const /*override*/;
154
155 virtual uint generation() const /*override*/;
156
157 virtual void set_generation(uint generation) /*override*/;
158
159 virtual ::std::vector<::webrtc::Candidate> const& Candidates() const /*override*/;
160
161 virtual void SubscribePortDestroyed(::std::function<void(::webrtc::PortInterface*)> callback) /*override*/;
162
163 virtual ::webrtc::Connection* GetConnection(::webrtc::SocketAddress const& remote_addr) /*override*/;
164
165 virtual void DestroyConnection(::webrtc::Connection* conn) /*override*/;
166
167 virtual void DestroyConnectionAsync(::webrtc::Connection* conn) /*override*/;
168
169 virtual bool HandleIncomingPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet);
170
171 virtual bool CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const& addr) const;
172
173 virtual void SendBindingErrorResponse(
174 ::webrtc::StunMessage* message,
175 ::webrtc::SocketAddress const& addr,
176 int error_code,
177 ::std::string_view reason
178 ) /*override*/;
179
180 virtual void EnablePortPackets() /*override*/;
181
182 virtual ::std::string ToString() const /*override*/;
183
184 virtual bool ParseStunUsername(
185 ::webrtc::StunMessage const* stun_msg,
186 ::std::string* local_ufrag,
187 ::std::string* remote_ufrag
188 ) const /*override*/;
189
190 virtual ::std::string CreateStunUsername(::std::string_view remote_username) const /*override*/;
191
192 virtual bool MaybeIceRoleConflict(
193 ::webrtc::SocketAddress const& addr,
194 ::webrtc::IceMessage* stun_msg,
195 ::std::string_view remote_ufrag
196 ) /*override*/;
197
198 virtual void OnSentPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::SentPacketInfo const& sent_packet) = 0;
199
200 virtual void AddPrflxCandidate(::webrtc::Candidate const& local) /*override*/;
201
202 virtual short network_cost() const /*override*/;
203
204 virtual void GetStunStats(::std::optional<::webrtc::StunStats>* stats) /*override*/;
205
206 virtual void SubscribeRoleConflict(::absl::AnyInvocable<void()> callback) /*override*/;
207
208 virtual void NotifyRoleConflict() /*override*/;
209
210 virtual void UpdateNetworkCost() /*override*/;
211
212 virtual void PostAddAddress(bool is_final);
213
214 virtual bool GetStunMessage(
215 char const* data,
216 uint64 size,
217 ::webrtc::SocketAddress const& addr,
218 ::std::unique_ptr<::webrtc::IceMessage>* out_msg,
219 ::std::string* out_username
220 ) /*override*/;
221
222 virtual ::webrtc::DiffServCodePoint StunDscpValue() const /*override*/;
223
224 virtual void HandleConnectionDestroyed(::webrtc::Connection* conn);
225 // NOLINTEND
226
227public:
228 // member functions
229 // NOLINTBEGIN
230 MCAPI void AddAddress(
231 ::webrtc::SocketAddress const& address,
232 ::webrtc::SocketAddress const& base_address,
233 ::webrtc::SocketAddress const& related_address,
234 ::std::string_view protocol,
235 ::std::string_view relay_protocol,
236 ::std::string_view tcptype,
237 ::webrtc::IceCandidateType type,
238 uint type_preference,
239 uint relay_preference,
240 ::std::string_view url,
241 bool is_final
242 );
243
244 MCAPI void AddOrReplaceConnection(::webrtc::Connection* conn);
245
246 MCAPI void CopyPortInformationToPacketInfo(::webrtc::PacketInfo* info) const;
247
248 MCAPI void Destroy();
249
250 MCAPI void DestroyAllConnections();
251
252 MCAPI void DestroyConnectionInternal(::webrtc::Connection* conn, bool async);
253
254 MCAPI void FinishAddingAddress(::webrtc::Candidate const& c, bool is_final);
255
256 MCAPI bool IsCompatibleAddress(::webrtc::SocketAddress const& addr);
257
258 MCAPI void KeepAliveUntilPruned();
259
260 MCAPI bool MaybeObfuscateAddress(::webrtc::Candidate const& c, bool is_final);
261
262 MCAPI void MaybeRequestLocalNetworkAccessPermission(
263 ::webrtc::SocketAddress const& address,
264 ::absl::AnyInvocable<void(::webrtc::LocalNetworkAccessPermissionStatus)> callback
265 );
266
267 MCAPI ::webrtc::WeakPtr<::webrtc::Port> NewWeakPtr();
268
269 MCAPI void OnNetworkTypeChanged(::webrtc::Network const* network);
270
271 MCAPI void OnReadPacket(::webrtc::ReceivedIpPacket const& packet, ::webrtc::ProtocolType proto);
272
273 MCAPI void OnReadyToSend();
274
275 MCAPI Port(::webrtc::Port::PortParametersRef const& args, ::webrtc::IceCandidateType type);
276
277 MCAPI Port(
278 ::webrtc::Port::PortParametersRef const& args,
279 ::webrtc::IceCandidateType type,
280 ushort min_port,
281 ushort max_port,
282 bool shared_socket
283 );
284
285 MCAPI void PostDestroyIfDead(bool delayed);
286
287 MCAPI void Prune();
288
289 MCAPI void SendCandidateError(::webrtc::IceCandidateErrorEvent const& event);
290
291 MCAPI void SendCandidateReady(::webrtc::Candidate const& candidate);
292
293 MCAPI void SendCandidateReadyCallbackList(::webrtc::Port*, ::webrtc::Candidate const& candidate);
294
295 MCAPI void SendUnknownAttributesErrorResponse(
296 ::webrtc::StunMessage* message,
297 ::webrtc::SocketAddress const& addr,
298 ::std::vector<ushort> const& unknown_types
299 );
300
301 MCAPI void SetIceParameters(int component, ::std::string_view username_fragment, ::std::string_view password);
302
303 MCAPI void
304 SubscribeCandidateError(::std::function<void(::webrtc::Port*, ::webrtc::IceCandidateErrorEvent const&)> callback);
305
306 MCAPI void
307 SubscribeCandidateReadyCallback(::absl::AnyInvocable<void(::webrtc::Port*, ::webrtc::Candidate const&)> callback);
308
309 MCAPI void set_content_name(::std::string_view content_name);
310 // NOLINTEND
311
312public:
313 // constructor thunks
314 // NOLINTBEGIN
315 MCAPI void* $ctor(::webrtc::Port::PortParametersRef const& args, ::webrtc::IceCandidateType type);
316
317 MCAPI void* $ctor(
318 ::webrtc::Port::PortParametersRef const& args,
319 ::webrtc::IceCandidateType type,
320 ushort min_port,
321 ushort max_port,
322 bool shared_socket
323 );
324 // NOLINTEND
325
326public:
327 // destructor thunk
328 // NOLINTBEGIN
329 MCAPI void $dtor();
330 // NOLINTEND
331
332public:
333 // virtual function thunks
334 // NOLINTBEGIN
335 MCAPI ::webrtc::IceCandidateType $Type() const;
336
337 MCAPI ::webrtc::Network const* $Network() const;
338
339 MCAPI ::webrtc::IceRole $GetIceRole() const;
340
341 MCAPI void $SetIceRole(::webrtc::IceRole role);
342
343 MCAPI void $SetIceTiebreaker(uint64 tiebreaker);
344
345 MCAPI uint64 $IceTiebreaker() const;
346
347 MCAPI bool $SharedSocket() const;
348
349 MCAPI ::webrtc::TaskQueueBase* $thread();
350
351 MCAPI ::webrtc::PacketSocketFactory* $socket_factory() const;
352
353 MCAPI ::std::string const& $content_name() const;
354
355 MCAPI bool $send_retransmit_count_attribute() const;
356
357 MCAPI uint $generation() const;
358
359 MCAPI void $set_generation(uint generation);
360
361 MCAPI ::std::vector<::webrtc::Candidate> const& $Candidates() const;
362
363 MCAPI void $SubscribePortDestroyed(::std::function<void(::webrtc::PortInterface*)> callback);
364
365 MCAPI ::webrtc::Connection* $GetConnection(::webrtc::SocketAddress const& remote_addr);
366
367 MCAPI void $DestroyConnection(::webrtc::Connection* conn);
368
369 MCAPI void $DestroyConnectionAsync(::webrtc::Connection* conn);
370
371 MCFOLD bool $HandleIncomingPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet);
372
373 MCFOLD bool $CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const& addr) const;
374
375 MCAPI void $SendBindingErrorResponse(
376 ::webrtc::StunMessage* message,
377 ::webrtc::SocketAddress const& addr,
378 int error_code,
379 ::std::string_view reason
380 );
381
382 MCAPI void $EnablePortPackets();
383
384 MCAPI ::std::string $ToString() const;
385
386 MCAPI bool $ParseStunUsername(
387 ::webrtc::StunMessage const* stun_msg,
388 ::std::string* local_ufrag,
389 ::std::string* remote_ufrag
390 ) const;
391
392 MCAPI ::std::string $CreateStunUsername(::std::string_view remote_username) const;
393
394 MCAPI bool $MaybeIceRoleConflict(
395 ::webrtc::SocketAddress const& addr,
396 ::webrtc::IceMessage* stun_msg,
397 ::std::string_view remote_ufrag
398 );
399
400 MCAPI void $AddPrflxCandidate(::webrtc::Candidate const& local);
401
402 MCAPI short $network_cost() const;
403
404 MCFOLD void $GetStunStats(::std::optional<::webrtc::StunStats>* stats);
405
406 MCAPI void $SubscribeRoleConflict(::absl::AnyInvocable<void()> callback);
407
408 MCAPI void $NotifyRoleConflict();
409
410 MCAPI void $UpdateNetworkCost();
411
412 MCAPI void $PostAddAddress(bool is_final);
413
414 MCAPI bool $GetStunMessage(
415 char const* data,
416 uint64 size,
417 ::webrtc::SocketAddress const& addr,
418 ::std::unique_ptr<::webrtc::IceMessage>* out_msg,
419 ::std::string* out_username
420 );
421
422 MCFOLD ::webrtc::DiffServCodePoint $StunDscpValue() const;
423
424 MCFOLD void $HandleConnectionDestroyed(::webrtc::Connection* conn);
425
426
427 // NOLINTEND
428
429public:
430 // vftables
431 // NOLINTBEGIN
432 MCNAPI static void** $vftableForPortInterface();
433
434 MCNAPI static void** $vftableForHasSlots();
435 // NOLINTEND
436};
437
438} // namespace webrtc
Definition has_slots.h:8
Definition AsyncPacketSocket.h:20
Definition Candidate.h:12
Definition Connection.h:35
Definition IceMessage.h:11
Definition Network.h:18
Definition PacketSocketFactory.h:16
Definition PortInterface.h:29
static MCAPI void ** $vftableForHasSlots()
static MCAPI void ** $vftableForPortInterface()
Definition ReceivedIpPacket.h:17
Definition SocketAddress.h:11
Definition StunMessage.h:24
Definition StunStats.h:7
Definition TaskQueueBase.h:16
Definition WeakPtr.h:8
STL namespace.
Definition Alias.h:14
Definition IceCandidateErrorEvent.h:7
Definition PacketInfo.h:7
Definition SentPacketInfo.h:12