LeviLamina
Loading...
Searching...
No Matches
Connection.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/webrtc/CandidatePairInterface.h"
8#include "mc/external/webrtc/IceCandidatePairState.h"
9#include "mc/external/webrtc/StunRequest.h"
10#include "mc/external/webrtc/WeakPtr.h"
11
12// auto generated forward declare list
13// clang-format off
14namespace webrtc { class Candidate; }
15namespace webrtc { class Environment; }
16namespace webrtc { class IceCandidatePairDescription; }
17namespace webrtc { class IceEventLog; }
18namespace webrtc { class IceMessage; }
19namespace webrtc { class Network; }
20namespace webrtc { class PortInterface; }
21namespace webrtc { class ReceivedIpPacket; }
22namespace webrtc { class StunByteStringAttribute; }
23namespace webrtc { class StunMessage; }
24namespace webrtc { class TaskQueueBase; }
25namespace webrtc { class TimeDelta; }
26namespace webrtc { class Timestamp; }
27namespace webrtc { struct AsyncSocketPacketOptions; }
28namespace webrtc { struct ConnectionInfo; }
29namespace webrtc { struct IceFieldTrials; }
30namespace webrtc { struct IceParameters; }
31// clang-format on
32
33namespace webrtc {
34
35class Connection : public ::webrtc::CandidatePairInterface {
36public:
37 // Connection inner types declare
38 // clang-format off
40 struct SentPing;
41 // clang-format on
42
43 // Connection inner types define
44 enum class WriteState : int {
45 Writable = 0,
46 WriteUnreliable = 1,
47 WriteInit = 2,
48 WriteTimeout = 3,
49 };
50
51 class ConnectionRequest : public ::webrtc::StunRequest {
52 public:
53 // member variables
54 // NOLINTBEGIN
56 // NOLINTEND
57
58 public:
59 // prevent constructor by default
60 ConnectionRequest& operator=(ConnectionRequest const&);
61 ConnectionRequest(ConnectionRequest const&);
62 ConnectionRequest();
63
64 public:
65 // virtual functions
66 // NOLINTBEGIN
67 virtual void OnResponse(::webrtc::StunMessage* response) /*override*/;
68
69 virtual void OnErrorResponse(::webrtc::StunMessage* response) /*override*/;
70
71 virtual void OnTimeout() /*override*/;
72
73 virtual void OnSent() /*override*/;
74
75 virtual int resend_delay() /*override*/;
76
77 virtual ~ConnectionRequest() /*override*/ = default;
78 // NOLINTEND
79
80 public:
81 // virtual function thunks
82 // NOLINTBEGIN
83 MCNAPI void $OnResponse(::webrtc::StunMessage* response);
84
86
87 MCNAPI void $OnTimeout();
88
89 MCNAPI void $OnSent();
90
91 MCNAPI int $resend_delay();
92
93
94 // NOLINTEND
95
96 public:
97 // vftables
98 // NOLINTBEGIN
99 MCNAPI static void** $vftable();
100 // NOLINTEND
101 };
102
103 struct SentPing {
104 public:
105 // member variables
106 // NOLINTBEGIN
110 // NOLINTEND
111
112 public:
113 // prevent constructor by default
114 SentPing& operator=(SentPing const&);
115 SentPing(SentPing const&);
116 SentPing();
117
118 public:
119 // member functions
120 // NOLINTBEGIN
121 MCNAPI ~SentPing();
122 // NOLINTEND
123
124 public:
125 // destructor thunk
126 // NOLINTBEGIN
127 MCNAPI void $dtor();
128 // NOLINTEND
129 };
130
131public:
132 // member variables
133 // NOLINTBEGIN
188 // NOLINTEND
189
190public:
191 // prevent constructor by default
192 Connection& operator=(Connection const&);
193 Connection(Connection const&);
194 Connection();
195
196public:
197 // virtual functions
198 // NOLINTBEGIN
199 virtual ~Connection() /*override*/;
200
201 virtual ::webrtc::Candidate const& local_candidate() const /*override*/;
202
203 virtual ::webrtc::Candidate const& remote_candidate() const /*override*/;
204
205 virtual ::webrtc::Network const* network() const;
206
207 virtual int generation() const;
208
209 virtual uint64 priority() const;
210
211 virtual int Send(void const* data, uint64 size, ::webrtc::AsyncSocketPacketOptions const& options) = 0;
212
213 virtual int GetError() = 0;
214
215 virtual void OnConnectionRequestResponse(::webrtc::StunRequest* request, ::webrtc::StunMessage* response);
216 // NOLINTEND
217
218public:
219 // member functions
220 // NOLINTBEGIN
221 MCNAPI ::std::unique_ptr<::webrtc::IceMessage>
222 BuildPingRequest(::std::unique_ptr<::webrtc::StunByteStringAttribute> delta);
223
224 MCNAPI uint ComputeNetworkCost() const;
225
226 MCNAPI Connection(
227 ::webrtc::Environment const& env,
228 ::webrtc::WeakPtr<::webrtc::PortInterface> port,
229 uint64 index,
230 ::webrtc::Candidate const& remote_candidate
231 );
232
234
236
237 MCNAPI void Destroy();
238
239 MCNAPI void FailAndPrune();
240
241 MCNAPI void ForgetLearnedState();
242
244
246
247 MCNAPI ::webrtc::Timestamp LastDataReceived() const;
248
249 MCNAPI ::webrtc::Timestamp LastPingReceived() const;
250
251 MCNAPI ::webrtc::Timestamp LastPingResponseReceived() const;
252
253 MCNAPI ::webrtc::Timestamp LastPingSent() const;
254
255 MCNAPI ::webrtc::Timestamp LastReceived() const;
256
258
260 ::webrtc::StunMessage const* msg,
261 ::webrtc::StunRequest const* original_request
262 );
263
264 MCNAPI void MaybeSetRemoteIceParametersAndGeneration(::webrtc::IceParameters const& ice_params, int generation);
265
266 MCNAPI void MaybeUpdateLocalCandidate(::webrtc::StunRequest* request, ::webrtc::StunMessage* response);
267
268 MCNAPI void MaybeUpdatePeerReflexiveCandidate(::webrtc::Candidate const& new_candidate);
269
270 MCNAPI void
271 OnConnectionRequestErrorResponse(::webrtc::Connection::ConnectionRequest* request, ::webrtc::StunMessage* response);
272
273 MCNAPI void OnConnectionRequestSent(::webrtc::Connection::ConnectionRequest* request);
274
275 MCNAPI void OnConnectionRequestTimeout(::webrtc::Connection::ConnectionRequest* request);
276
277 MCNAPI void OnReadPacket(::webrtc::ReceivedIpPacket const& packet);
278
279 MCNAPI void OnReadyToSend();
280
281 MCNAPI void OnSendStunPacket(void const* data, uint64 size, ::webrtc::StunRequest* req);
282
283 MCNAPI void Ping(::webrtc::Timestamp now, ::std::unique_ptr<::webrtc::StunByteStringAttribute> delta);
284
285 MCNAPI void PrintPingsSinceLastResponse(::std::string* s, uint64 max);
286
287 MCNAPI void Prune();
288
289 MCNAPI void ReceivedPing(::std::optional<::std::string> const& request_id);
290
291 MCNAPI void
292 ReceivedPingResponse(::webrtc::TimeDelta rtt, ::std::string_view, ::std::optional<uint> const& nomination);
293
294 MCNAPI ::webrtc::Timestamp ReceivingUnchangedSince() const;
295
297 ::absl::AnyInvocable<void(::webrtc::Connection*, ::webrtc::ReceivedIpPacket const&)> received_packet_callback
298 );
299
300 MCNAPI ::webrtc::TimeDelta Rtt() const;
301
302 MCNAPI void SendResponseMessage(::webrtc::StunMessage const& response);
303
304 MCNAPI void SendStunBindingResponse(::webrtc::StunMessage const* message);
305
306 MCNAPI void SetIceFieldTrials(::webrtc::IceFieldTrials const* field_trials);
307
308 MCNAPI void SetInactiveTimeout(::std::optional<::webrtc::TimeDelta> value);
309
310 MCNAPI void SetLocalCandidateNetworkCost(ushort cost);
311
312 MCNAPI void SetReceivingTimeout(::std::optional<::webrtc::TimeDelta> receiving_timeout);
313
314 MCNAPI void SetUnwritableTimeout(::std::optional<::webrtc::TimeDelta> value);
315
316 MCNAPI bool Shutdown();
317
319
320 MCNAPI ::std::string ToString() const;
321
322 MCNAPI bool TooManyOutstandingPings(::std::optional<int> const& max_outstanding_pings) const;
323
324 MCNAPI void
325 UpdateLocalIceParameters(int component, ::std::string_view username_fragment, ::std::string_view password);
326
327 MCNAPI void UpdateReceiving(::webrtc::Timestamp now);
328
329 MCNAPI void UpdateState(::webrtc::Timestamp now);
330
331 MCNAPI bool active() const;
332
333 MCNAPI bool connected() const;
334
335 MCNAPI bool dead(::webrtc::Timestamp now) const;
336
337 MCNAPI int64 last_data_received() const;
338
339 MCNAPI int64 last_ping_received() const;
340
341 MCNAPI int64 last_ping_sent() const;
342
343 MCNAPI ::webrtc::TaskQueueBase* network_thread() const;
344
345 MCNAPI bool nominated() const;
346
347 MCNAPI int num_pings_sent() const;
348
349 MCNAPI ::webrtc::PortInterface* port();
350
351 MCNAPI bool receiving() const;
352
353 MCNAPI int64 receiving_unchanged_since() const;
354
355 MCNAPI uint remote_nomination() const;
356
357 MCNAPI int rtt() const;
358
359 MCNAPI int rtt_samples() const;
360
361 MCNAPI void set_connected(bool value);
362
363 MCNAPI void set_ice_event_log(::webrtc::IceEventLog* ice_event_log);
364
365 MCNAPI void set_nomination(uint value);
366
367 MCNAPI void set_selected(bool selected);
368
369 MCNAPI void set_state(::webrtc::IceCandidatePairState state);
370
371 MCNAPI void set_unwritable_min_checks(::std::optional<int> const& value);
372
373 MCNAPI void set_use_candidate_attr(bool enable);
374
375 MCNAPI void set_write_state(::webrtc::Connection::WriteState value);
376
377 MCNAPI bool stable(::webrtc::Timestamp now) const;
378
379 MCNAPI ::webrtc::IceCandidatePairState state() const;
380
381 MCNAPI ::webrtc::ConnectionInfo stats();
382
383 MCNAPI bool weak() const;
384
385 MCNAPI bool writable() const;
386
387 MCNAPI ::webrtc::Connection::WriteState write_state() const;
388 // NOLINTEND
389
390public:
391 // constructor thunks
392 // NOLINTBEGIN
393 MCNAPI void* $ctor(
394 ::webrtc::Environment const& env,
395 ::webrtc::WeakPtr<::webrtc::PortInterface> port,
396 uint64 index,
397 ::webrtc::Candidate const& remote_candidate
398 );
399 // NOLINTEND
400
401public:
402 // destructor thunk
403 // NOLINTBEGIN
404 MCNAPI void $dtor();
405 // NOLINTEND
406
407public:
408 // virtual function thunks
409 // NOLINTBEGIN
410 MCNAPI ::webrtc::Candidate const& $local_candidate() const;
411
412 MCNAPI ::webrtc::Candidate const& $remote_candidate() const;
413
414 MCNAPI ::webrtc::Network const* $network() const;
415
416 MCNAPI int $generation() const;
417
418 MCNAPI uint64 $priority() const;
419
420 MCNAPI void $OnConnectionRequestResponse(::webrtc::StunRequest* request, ::webrtc::StunMessage* response);
421
422
423 // NOLINTEND
424
425public:
426 // vftables
427 // NOLINTBEGIN
428 MCNAPI static void** $vftable();
429 // NOLINTEND
430};
431
432} // namespace webrtc
Definition CandidatePairInterface.h:12
Definition Candidate.h:15
Definition Connection.h:51
MCAPI void $OnResponse(::webrtc::StunMessage *response)
MCAPI void $OnErrorResponse(::webrtc::StunMessage *response)
MCAPI::webrtc::Timestamp LastPingResponseReceived() const
MCAPI void MaybeUpdateLocalCandidate(::webrtc::StunRequest *request, ::webrtc::StunMessage *response)
MCAPI::webrtc::IceCandidatePairState state() const
MCAPI void * $ctor(::webrtc::Environment const &env, ::webrtc::WeakPtr<::webrtc::PortInterface > port, uint64 index, ::webrtc::Candidate const &remote_candidate)
MCAPI::webrtc::PortInterface * port()
MCAPI void MaybeAddDtlsPiggybackingAttributes(::webrtc::StunMessage *msg)
MCAPI void Destroy()
MCAPI void set_nomination(uint value)
MCAPI void ReceivedPingResponse(::webrtc::TimeDelta rtt, ::std::string_view, ::std::optional< uint > const &nomination)
MCAPI void set_state(::webrtc::IceCandidatePairState state)
MCAPI bool Shutdown()
MCAPI void Ping(::webrtc::Timestamp now, ::std::unique_ptr<::webrtc::StunByteStringAttribute > delta)
MCAPI void Prune()
MCAPI ::std::unique_ptr<::webrtc::IceMessage > BuildPingRequest(::std::unique_ptr<::webrtc::StunByteStringAttribute > delta)
MCAPI void set_write_state(::webrtc::Connection::WriteState value)
MCAPI void SendStunBindingResponse(::webrtc::StunMessage const *message)
MCAPI int num_pings_sent() const
MCAPI void DeregisterDtlsPiggyback()
MCAPI void HandlePiggybackCheckAcknowledgementIfAny(::webrtc::StunMessage *msg)
MCAPI::webrtc::Timestamp ReceivingUnchangedSince() const
MCAPI bool stable(::webrtc::Timestamp now) const
MCAPI void FailAndPrune()
MCAPI void MaybeUpdatePeerReflexiveCandidate(::webrtc::Candidate const &new_candidate)
MCAPI::webrtc::Candidate const & $remote_candidate() const
MCAPI bool TooManyOutstandingPings(::std::optional< int > const &max_outstanding_pings) const
MCAPI::webrtc::Timestamp LastPingSent() const
MCAPI void set_selected(bool selected)
MCAPI void set_connected(bool value)
MCAPI::webrtc::Timestamp LastDataReceived() const
MCAPI void $OnConnectionRequestResponse(::webrtc::StunRequest *request, ::webrtc::StunMessage *response)
MCAPI void MaybeSetRemoteIceParametersAndGeneration(::webrtc::IceParameters const &ice_params, int generation)
MCAPI bool dead(::webrtc::Timestamp now) const
MCAPI void set_unwritable_min_checks(::std::optional< int > const &value)
MCAPI void OnConnectionRequestSent(::webrtc::Connection::ConnectionRequest *request)
MCAPI void SetUnwritableTimeout(::std::optional<::webrtc::TimeDelta > value)
MCAPI::webrtc::Network const * $network() const
MCAPI::webrtc::TaskQueueBase * network_thread() const
MCAPI void OnReadyToSend()
MCAPI bool nominated() const
MCAPI::webrtc::IceCandidatePairDescription const & ToLogDescription()
MCAPI void OnConnectionRequestTimeout(::webrtc::Connection::ConnectionRequest *request)
MCAPI::webrtc::Candidate const & $local_candidate() const
MCAPI void PrintPingsSinceLastResponse(::std::string *s, uint64 max)
MCAPI bool receiving() const
MCAPI void UpdateState(::webrtc::Timestamp now)
MCAPI int $generation() const
MCAPI void OnSendStunPacket(void const *data, uint64 size, ::webrtc::StunRequest *req)
MCAPI void ReceivedPing(::std::optional<::std::string > const &request_id)
MCAPI::std::string ToString() const
MCAPI void SendResponseMessage(::webrtc::StunMessage const &response)
static MCAPI void ** $vftable()
MCAPI void UpdateLocalIceParameters(int component, ::std::string_view username_fragment, ::std::string_view password)
MCAPI void SetLocalCandidateNetworkCost(ushort cost)
MCAPI int rtt_samples() const
MCAPI int rtt() const
MCAPI void SetInactiveTimeout(::std::optional<::webrtc::TimeDelta > value)
MCAPI void UpdateReceiving(::webrtc::Timestamp now)
MCAPI void RegisterReceivedPacketCallback(::absl::AnyInvocable< void(::webrtc::Connection *, ::webrtc::ReceivedIpPacket const &)> received_packet_callback)
MCAPI int64 receiving_unchanged_since() const
MCAPI bool active() const
MCAPI::webrtc::ConnectionInfo stats()
MCAPI void $dtor()
MCAPI void SetReceivingTimeout(::std::optional<::webrtc::TimeDelta > receiving_timeout)
MCAPI::webrtc::Timestamp LastReceived() const
MCAPI void ForgetLearnedState()
MCAPI uint ComputeNetworkCost() const
MCAPI::webrtc::TimeDelta Rtt() const
MCAPI void OnConnectionRequestErrorResponse(::webrtc::Connection::ConnectionRequest *request, ::webrtc::StunMessage *response)
MCAPI void DeregisterReceivedPacketCallback()
MCAPI uint remote_nomination() const
MCAPI uint64 $priority() const
MCAPI bool weak() const
MCAPI void set_use_candidate_attr(bool enable)
MCAPI void MaybeHandleDtlsPiggybackingAttributes(::webrtc::StunMessage const *msg, ::webrtc::StunRequest const *original_request)
MCAPI void SetIceFieldTrials(::webrtc::IceFieldTrials const *field_trials)
MCAPI int64 last_ping_received() const
MCAPI void OnReadPacket(::webrtc::ReceivedIpPacket const &packet)
MCAPI bool writable() const
MCAPI::webrtc::Connection::WriteState write_state() const
MCAPI int64 last_data_received() const
MCAPI void set_ice_event_log(::webrtc::IceEventLog *ice_event_log)
MCAPI void HandleStunBindingOrGoogPingRequest(::webrtc::IceMessage *msg)
MCAPI int64 last_ping_sent() const
MCAPI::webrtc::Timestamp LastPingReceived() const
MCAPI bool connected() const
Definition Environment.h:7
Definition IceCandidatePairDescription.h:10
Definition IceEventLog.h:16
Definition IceMessage.h:11
Definition Network.h:18
Definition PortInterface.h:29
Definition ReceivedIpPacket.h:17
Definition StunByteStringAttribute.h:17
Definition StunMessage.h:24
Definition StunRequest.h:15
Definition TaskQueueBase.h:16
Definition TimeDelta.h:10
Definition Timestamp.h:15
Definition WeakPtr.h:8
STL namespace.
Definition Alias.h:14
Definition AsyncSocketPacketOptions.h:10
Definition ConnectionInfo.h:7
Definition Connection.h:103
Definition IceFieldTrials.h:7
Definition IceParameters.h:12