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,
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
74 // NOLINTEND
75
76 public:
77 // destructor thunk
78 // NOLINTBEGIN
79 MCNAPI 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 MCNAPI 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 MCNAPI void AddOrReplaceConnection(::webrtc::Connection* conn);
245
246 MCNAPI void CopyPortInformationToPacketInfo(::webrtc::PacketInfo* info) const;
247
248 MCNAPI void Destroy();
249
251
252 MCNAPI void DestroyConnectionInternal(::webrtc::Connection* conn, bool async);
253
254 MCNAPI void FinishAddingAddress(::webrtc::Candidate const& c, bool is_final);
255
256 MCNAPI bool IsCompatibleAddress(::webrtc::SocketAddress const& addr);
257
258 MCNAPI void KeepAliveUntilPruned();
259
260 MCNAPI bool MaybeObfuscateAddress(::webrtc::Candidate const& c, bool is_final);
261
263 ::webrtc::SocketAddress const& address,
264 ::absl::AnyInvocable<void(::webrtc::LocalNetworkAccessPermissionStatus)> callback
265 );
266
267 MCNAPI ::webrtc::WeakPtr<::webrtc::Port> NewWeakPtr();
268
269 MCNAPI void OnNetworkTypeChanged(::webrtc::Network const* network);
270
271 MCNAPI void OnReadPacket(::webrtc::ReceivedIpPacket const& packet, ::webrtc::ProtocolType proto);
272
273 MCNAPI void OnReadyToSend();
274
275 MCNAPI Port(::webrtc::Port::PortParametersRef const& args, ::webrtc::IceCandidateType type);
276
277 MCNAPI 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 MCNAPI void PostDestroyIfDead(bool delayed);
286
287 MCNAPI void Prune();
288
289 MCNAPI void SendCandidateError(::webrtc::IceCandidateErrorEvent const& event);
290
291 MCNAPI void SendCandidateReady(::webrtc::Candidate const& candidate);
292
293 MCNAPI void SendCandidateReadyCallbackList(::webrtc::Port*, ::webrtc::Candidate const& candidate);
294
296 ::webrtc::StunMessage* message,
297 ::webrtc::SocketAddress const& addr,
298 ::std::vector<ushort> const& unknown_types
299 );
300
301 MCNAPI void SetIceParameters(int component, ::std::string_view username_fragment, ::std::string_view password);
302
303 MCNAPI void
304 SubscribeCandidateError(::std::function<void(::webrtc::Port*, ::webrtc::IceCandidateErrorEvent const&)> callback);
305
306 MCNAPI void
307 SubscribeCandidateReadyCallback(::absl::AnyInvocable<void(::webrtc::Port*, ::webrtc::Candidate const&)> callback);
308
309 MCNAPI void set_content_name(::std::string_view content_name);
310 // NOLINTEND
311
312public:
313 // constructor thunks
314 // NOLINTBEGIN
315 MCNAPI void* $ctor(::webrtc::Port::PortParametersRef const& args, ::webrtc::IceCandidateType type);
316
317 MCNAPI 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 MCNAPI void $dtor();
330 // NOLINTEND
331
332public:
333 // virtual function thunks
334 // NOLINTBEGIN
335 MCNAPI ::webrtc::IceCandidateType $Type() const;
336
337 MCNAPI ::webrtc::Network const* $Network() const;
338
339 MCNAPI ::webrtc::IceRole $GetIceRole() const;
340
341 MCNAPI void $SetIceRole(::webrtc::IceRole role);
342
343 MCNAPI void $SetIceTiebreaker(uint64 tiebreaker);
344
345 MCNAPI uint64 $IceTiebreaker() const;
346
347 MCNAPI bool $SharedSocket() const;
348
349 MCNAPI ::webrtc::TaskQueueBase* $thread();
350
351 MCNAPI ::webrtc::PacketSocketFactory* $socket_factory() const;
352
353 MCNAPI ::std::string const& $content_name() const;
354
356
357 MCNAPI uint $generation() const;
358
359 MCNAPI void $set_generation(uint generation);
360
361 MCNAPI ::std::vector<::webrtc::Candidate> const& $Candidates() const;
362
363 MCNAPI void $SubscribePortDestroyed(::std::function<void(::webrtc::PortInterface*)> callback);
364
365 MCNAPI ::webrtc::Connection* $GetConnection(::webrtc::SocketAddress const& remote_addr);
366
367 MCNAPI void $DestroyConnection(::webrtc::Connection* conn);
368
369 MCNAPI void $DestroyConnectionAsync(::webrtc::Connection* conn);
370
371 MCNAPI bool $HandleIncomingPacket(::webrtc::AsyncPacketSocket* socket, ::webrtc::ReceivedIpPacket const& packet);
372
373 MCNAPI bool $CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const& addr) const;
374
376 ::webrtc::StunMessage* message,
377 ::webrtc::SocketAddress const& addr,
378 int error_code,
379 ::std::string_view reason
380 );
381
382 MCNAPI void $EnablePortPackets();
383
384 MCNAPI ::std::string $ToString() const;
385
387 ::webrtc::StunMessage const* stun_msg,
388 ::std::string* local_ufrag,
389 ::std::string* remote_ufrag
390 ) const;
391
392 MCNAPI ::std::string $CreateStunUsername(::std::string_view remote_username) const;
393
395 ::webrtc::SocketAddress const& addr,
396 ::webrtc::IceMessage* stun_msg,
397 ::std::string_view remote_ufrag
398 );
399
400 MCNAPI void $AddPrflxCandidate(::webrtc::Candidate const& local);
401
402 MCNAPI short $network_cost() const;
403
404 MCNAPI void $GetStunStats(::std::optional<::webrtc::StunStats>* stats);
405
406 MCNAPI void $SubscribeRoleConflict(::absl::AnyInvocable<void()> callback);
407
408 MCNAPI void $NotifyRoleConflict();
409
410 MCNAPI void $UpdateNetworkCost();
411
412 MCNAPI void $PostAddAddress(bool is_final);
413
414 MCNAPI 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 MCNAPI ::webrtc::DiffServCodePoint $StunDscpValue() const;
423
424 MCNAPI 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:15
Definition Connection.h:35
Definition IceMessage.h:11
Definition Network.h:18
Definition PacketSocketFactory.h:16
Definition PortInterface.h:29
MCAPI void MaybeRequestLocalNetworkAccessPermission(::webrtc::SocketAddress const &address, ::absl::AnyInvocable< void(::webrtc::LocalNetworkAccessPermissionStatus)> callback)
MCAPI::webrtc::IceCandidateType $Type() const
MCAPI void PostDestroyIfDead(bool delayed)
MCAPI::std::string $ToString() const
MCAPI void $SendBindingErrorResponse(::webrtc::StunMessage *message, ::webrtc::SocketAddress const &addr, int error_code, ::std::string_view reason)
MCAPI short $network_cost() const
MCAPI::std::string const & $content_name() const
MCAPI void $DestroyConnectionAsync(::webrtc::Connection *conn)
MCAPI void Prune()
MCAPI void OnReadyToSend()
MCAPI void SendCandidateError(::webrtc::IceCandidateErrorEvent const &event)
MCAPI void AddAddress(::webrtc::SocketAddress const &address, ::webrtc::SocketAddress const &base_address, ::webrtc::SocketAddress const &related_address, ::std::string_view protocol, ::std::string_view relay_protocol, ::std::string_view tcptype, ::webrtc::IceCandidateType type, uint type_preference, uint relay_preference, ::std::string_view url, bool is_final)
MCAPI void SendCandidateReadyCallbackList(::webrtc::Port *, ::webrtc::Candidate const &candidate)
MCAPI::webrtc::Network const * $Network() const
MCAPI void SubscribeCandidateReadyCallback(::absl::AnyInvocable< void(::webrtc::Port *, ::webrtc::Candidate const &)> callback)
MCAPI void * $ctor(::webrtc::Port::PortParametersRef const &args, ::webrtc::IceCandidateType type)
MCAPI void SubscribeCandidateError(::std::function< void(::webrtc::Port *, ::webrtc::IceCandidateErrorEvent const &)> callback)
MCAPI bool $GetStunMessage(char const *data, uint64 size, ::webrtc::SocketAddress const &addr, ::std::unique_ptr<::webrtc::IceMessage > *out_msg, ::std::string *out_username)
MCAPI void $SetIceTiebreaker(uint64 tiebreaker)
MCAPI void DestroyConnectionInternal(::webrtc::Connection *conn, bool async)
MCAPI void $EnablePortPackets()
MCAPI::webrtc::PacketSocketFactory * $socket_factory() const
static MCAPI void ** $vftableForHasSlots()
MCAPI bool $HandleIncomingPacket(::webrtc::AsyncPacketSocket *socket, ::webrtc::ReceivedIpPacket const &packet)
MCAPI void $set_generation(uint generation)
MCAPI bool MaybeObfuscateAddress(::webrtc::Candidate const &c, bool is_final)
MCAPI void $SubscribePortDestroyed(::std::function< void(::webrtc::PortInterface *)> callback)
MCAPI ::webrtc::WeakPtr<::webrtc::Port > NewWeakPtr()
MCAPI void SetIceParameters(int component, ::std::string_view username_fragment, ::std::string_view password)
MCAPI bool $send_retransmit_count_attribute() const
MCAPI bool $ParseStunUsername(::webrtc::StunMessage const *stun_msg, ::std::string *local_ufrag, ::std::string *remote_ufrag) const
MCAPI void $GetStunStats(::std::optional<::webrtc::StunStats > *stats)
MCAPI void $NotifyRoleConflict()
MCAPI void $DestroyConnection(::webrtc::Connection *conn)
MCAPI ::std::vector<::webrtc::Candidate > const & $Candidates() const
MCAPI bool IsCompatibleAddress(::webrtc::SocketAddress const &addr)
MCAPI void CopyPortInformationToPacketInfo(::webrtc::PacketInfo *info) const
MCAPI void OnReadPacket(::webrtc::ReceivedIpPacket const &packet, ::webrtc::ProtocolType proto)
MCAPI void SendUnknownAttributesErrorResponse(::webrtc::StunMessage *message, ::webrtc::SocketAddress const &addr, ::std::vector< ushort > const &unknown_types)
MCAPI::webrtc::DiffServCodePoint $StunDscpValue() const
MCAPI::webrtc::IceRole $GetIceRole() const
MCAPI void $SetIceRole(::webrtc::IceRole role)
static MCAPI void ** $vftableForPortInterface()
MCAPI void $HandleConnectionDestroyed(::webrtc::Connection *conn)
MCAPI void AddOrReplaceConnection(::webrtc::Connection *conn)
MCAPI::std::string $CreateStunUsername(::std::string_view remote_username) const
MCAPI void $SubscribeRoleConflict(::absl::AnyInvocable< void()> callback)
MCAPI void KeepAliveUntilPruned()
MCAPI bool $MaybeIceRoleConflict(::webrtc::SocketAddress const &addr, ::webrtc::IceMessage *stun_msg, ::std::string_view remote_ufrag)
MCAPI bool $SharedSocket() const
MCAPI void $AddPrflxCandidate(::webrtc::Candidate const &local)
MCAPI uint $generation() const
MCAPI bool $CanHandleIncomingPacketsFrom(::webrtc::SocketAddress const &addr) const
MCAPI void DestroyAllConnections()
MCAPI void OnNetworkTypeChanged(::webrtc::Network const *network)
MCAPI void $dtor()
MCAPI void $UpdateNetworkCost()
MCAPI uint64 $IceTiebreaker() const
MCAPI::webrtc::TaskQueueBase * $thread()
MCAPI void Destroy()
MCAPI void SendCandidateReady(::webrtc::Candidate const &candidate)
MCAPI void FinishAddingAddress(::webrtc::Candidate const &c, bool is_final)
MCAPI void $PostAddAddress(bool is_final)
MCAPI::webrtc::Connection * $GetConnection(::webrtc::SocketAddress const &remote_addr)
MCAPI void set_content_name(::std::string_view content_name)
Definition ReceivedIpPacket.h:17
Definition SocketAddress.h:15
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