LeviLamina
Loading...
Searching...
No Matches
JsepTransportController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/sigslot/has_slots.h"
7#include "mc/external/sigslot/single_threaded.h"
8#include "mc/external/webrtc/IceRole.h"
9#include "mc/external/webrtc/PayloadTypeSuggester.h"
10#include "mc/external/webrtc/RTCErrorOr.h"
11#include "mc/external/webrtc/SSLRole.h"
12#include "mc/external/webrtc/SdpType.h"
13#include "mc/external/webrtc/scoped_refptr.h"
14
15// auto generated forward declare list
16// clang-format off
17namespace webrtc { class AsyncDnsResolverFactoryInterface; }
18namespace webrtc { class Candidate; }
19namespace webrtc { class ContentGroup; }
20namespace webrtc { class ContentInfo; }
21namespace webrtc { class DataChannelTransportInterface; }
22namespace webrtc { class DtlsTransport; }
23namespace webrtc { class DtlsTransportInternal; }
24namespace webrtc { class Environment; }
25namespace webrtc { class IceCandidate; }
26namespace webrtc { class IceTransportInterface; }
27namespace webrtc { class IceTransportInternal; }
28namespace webrtc { class LocalNetworkAccessPermissionFactoryInterface; }
29namespace webrtc { class PacketTransportInternal; }
30namespace webrtc { class PayloadType; }
31namespace webrtc { class PayloadTypePicker; }
32namespace webrtc { class PortAllocator; }
33namespace webrtc { class RTCCertificate; }
34namespace webrtc { class RTCError; }
35namespace webrtc { class RtpTransportInternal; }
36namespace webrtc { class SSLCertChain; }
37namespace webrtc { class SctpTransport; }
38namespace webrtc { class SessionDescription; }
39namespace webrtc { class Thread; }
40namespace webrtc { struct Codec; }
41namespace webrtc { struct IceConfig; }
42namespace webrtc { struct JsepTransportDescription; }
43namespace webrtc { struct TransportInfo; }
44namespace webrtc { struct TransportStats; }
45// clang-format on
46
47namespace webrtc {
48
49class JsepTransportController : public ::webrtc::PayloadTypeSuggester,
50 public ::sigslot::has_slots<::sigslot::single_threaded> {
51public:
52 // JsepTransportController inner types declare
53 // clang-format off
54 class Observer;
55 struct Config;
56 // clang-format on
57
58 // JsepTransportController inner types define
59 class Observer {
60 public:
61 // virtual functions
62 // NOLINTBEGIN
63 virtual ~Observer();
64
65 virtual bool OnTransportChanged(
66 ::std::string const& mid,
67 ::webrtc::RtpTransportInternal* rtp_transport,
69 ::webrtc::DataChannelTransportInterface* data_channel_transport
70 ) = 0;
71 // NOLINTEND
72
73 public:
74 // destructor thunk
75 // NOLINTBEGIN
76 MCNAPI void $dtor();
77 // NOLINTEND
78
79 public:
80 // vftables
81 // NOLINTBEGIN
82 MCNAPI static void** $vftable();
83 // NOLINTEND
84 };
85
86 struct Config {
87 public:
88 // member variables
89 // NOLINTBEGIN
105 // NOLINTEND
106
107 public:
108 // prevent constructor by default
109 Config& operator=(Config const&);
110 Config(Config const&);
111 Config();
112
113 public:
114 // member functions
115 // NOLINTBEGIN
116 MCNAPI ~Config();
117 // NOLINTEND
118
119 public:
120 // destructor thunk
121 // NOLINTBEGIN
122 MCNAPI void $dtor();
123 // NOLINTEND
124 };
125
126public:
127 // member variables
128 // NOLINTBEGIN
155 // NOLINTEND
156
157public:
158 // prevent constructor by default
159 JsepTransportController& operator=(JsepTransportController const&);
160 JsepTransportController(JsepTransportController const&);
161 JsepTransportController();
162
163public:
164 // virtual functions
165 // NOLINTBEGIN
166 virtual ~JsepTransportController() /*override*/ = default;
167
168 virtual ::webrtc::RTCErrorOr<::webrtc::PayloadType>
169 SuggestPayloadType(::std::string const& mid, ::webrtc::Codec codec) /*override*/;
170
171 virtual ::webrtc::RTCError AddLocalMapping(
172 ::std::string const& mid,
173 ::webrtc::PayloadType payload_type,
174 ::webrtc::Codec const& codec
175 ) /*override*/;
176 // NOLINTEND
177
178public:
179 // member functions
180 // NOLINTBEGIN
181 MCNAPI ::webrtc::RTCError
182 AddRemoteCandidates(::std::string const& transport_name, ::std::vector<::webrtc::Candidate> const& candidates);
183
184 MCNAPI ::webrtc::RTCError ApplyDescription_n(
185 bool local,
186 ::webrtc::SdpType type,
187 ::webrtc::SessionDescription const* local_desc,
188 ::webrtc::SessionDescription const* remote_desc
189 );
190
191 MCNAPI ::std::unique_ptr<::webrtc::DtlsTransportInternal>
193
194 MCNAPI ::webrtc::scoped_refptr<::webrtc::IceTransportInterface>
195 CreateIceTransport(::std::string const& transport_name, bool rtcp);
196
197 MCNAPI ::webrtc::JsepTransportDescription CreateJsepTransportDescription(
198 ::webrtc::ContentInfo const& content_info,
199 ::webrtc::TransportInfo const& transport_info,
200 ::std::vector<int> const& encrypted_extension_ids,
201 int rtp_abs_sendtime_extn_id
202 );
203
204 MCNAPI ::std::vector<::webrtc::DtlsTransportInternal*> GetActiveDtlsTransports();
205
206 MCNAPI ::webrtc::DataChannelTransportInterface* GetDataChannelTransport(::std::string const& mid) const;
207
208 MCNAPI ::std::optional<::webrtc::SSLRole> GetDtlsRole(::std::string const& mid) const;
209
210 MCNAPI ::webrtc::DtlsTransportInternal* GetDtlsTransport(::std::string const& mid);
211
212 MCNAPI ::std::vector<::webrtc::DtlsTransportInternal*> GetDtlsTransports();
213
214 MCNAPI ::std::vector<int> GetEncryptedHeaderExtensionIds(::webrtc::ContentInfo const& content_info);
215
216 MCNAPI ::webrtc::scoped_refptr<::webrtc::RTCCertificate>
217 GetLocalCertificate(::std::string const& transport_name) const;
218
219 MCNAPI ::std::unique_ptr<::webrtc::SSLCertChain> GetRemoteSSLCertChain(::std::string const& transport_name) const;
220
221 MCNAPI ::webrtc::RtpTransportInternal* GetRtpTransport(::std::string_view mid) const;
222
223 MCNAPI ::webrtc::scoped_refptr<::webrtc::SctpTransport> GetSctpTransport(::std::string const& mid) const;
224
225 MCNAPI bool GetStats(::std::string const& transport_name, ::webrtc::TransportStats* stats) const;
226
228 ::webrtc::Environment const& env,
229 ::webrtc::Thread* network_thread,
230 ::webrtc::PortAllocator* port_allocator,
231 ::webrtc::AsyncDnsResolverFactoryInterface* async_dns_resolver_factory,
233 ::webrtc::PayloadTypePicker& payload_type_picker,
235 );
236
237 MCNAPI ::webrtc::scoped_refptr<::webrtc::DtlsTransport> LookupDtlsTransportByMid(::std::string const& mid);
238
239 MCNAPI ::webrtc::RTCError MaybeCreateJsepTransport(
240 bool local,
241 ::webrtc::ContentInfo const& content_info,
242 ::webrtc::SessionDescription const& description
243 );
244
245 MCNAPI void MaybeStartGathering();
246
247 MCNAPI ::std::map<::webrtc::ContentGroup const*, ::std::vector<int>>
249
250 MCNAPI bool NeedsIceRestart(::std::string const& transport_name) const;
251
252 MCNAPI void
254
256
258
260
262
264
265 MCNAPI ::webrtc::RTCError RollbackTransports();
266
267 MCNAPI void SetActiveResetSrtpParams(bool active_reset_srtp_params);
268
269 MCNAPI void SetIceConfig(::webrtc::IceConfig const& config);
270
271 MCNAPI void SetIceRole_n(::webrtc::IceRole ice_role);
272
274
275 MCNAPI ::webrtc::RTCError SetLocalDescription(
276 ::webrtc::SdpType type,
277 ::webrtc::SessionDescription const* local_desc,
278 ::webrtc::SessionDescription const* remote_desc
279 );
280
282
283 MCNAPI ::webrtc::RTCError SetRemoteDescription(
284 ::webrtc::SdpType type,
285 ::webrtc::SessionDescription const* local_desc,
286 ::webrtc::SessionDescription const* remote_desc
287 );
288
290
291 MCNAPI ::webrtc::RTCError ValidateAndMaybeUpdateBundleGroups(
292 bool local,
293 ::webrtc::SdpType type,
294 ::webrtc::SessionDescription const* local_desc,
295 ::webrtc::SessionDescription const* remote_desc
296 );
297
298 MCNAPI ::webrtc::RTCError ValidateContent(::webrtc::ContentInfo const& content_info);
299 // NOLINTEND
300
301public:
302 // constructor thunks
303 // NOLINTBEGIN
304 MCNAPI void* $ctor(
305 ::webrtc::Environment const& env,
306 ::webrtc::Thread* network_thread,
307 ::webrtc::PortAllocator* port_allocator,
308 ::webrtc::AsyncDnsResolverFactoryInterface* async_dns_resolver_factory,
310 ::webrtc::PayloadTypePicker& payload_type_picker,
312 );
313 // NOLINTEND
314
315public:
316 // virtual function thunks
317 // NOLINTBEGIN
318 MCNAPI ::webrtc::RTCErrorOr<::webrtc::PayloadType>
319 $SuggestPayloadType(::std::string const& mid, ::webrtc::Codec codec);
320
321 MCNAPI ::webrtc::RTCError
322 $AddLocalMapping(::std::string const& mid, ::webrtc::PayloadType payload_type, ::webrtc::Codec const& codec);
323
324
325 // NOLINTEND
326
327public:
328 // vftables
329 // NOLINTBEGIN
330 MCNAPI static void** $vftableForHasSlots();
331
332 MCNAPI static void** $vftableForPayloadTypeSuggester();
333 // NOLINTEND
334};
335
336} // namespace webrtc
Definition has_slots.h:8
Definition AsyncDnsResolverFactoryInterface.h:16
Definition Candidate.h:15
Definition ContentGroup.h:7
Definition ContentInfo.h:12
Definition DataChannelTransportInterface.h:16
Definition DtlsTransportInternal.h:22
Definition DtlsTransport.h:19
Definition Environment.h:7
Definition IceCandidate.h:12
Definition IceTransportInterface.h:15
Definition IceTransportInternal.h:29
Definition JsepTransportController.h:59
MCAPI ::std::map<::webrtc::ContentGroup const *, ::std::vector< int > > MergeEncryptedHeaderExtensionIdsForBundles(::webrtc::SessionDescription const *description)
MCAPI::webrtc::RTCError $AddLocalMapping(::std::string const &mid, ::webrtc::PayloadType payload_type, ::webrtc::Codec const &codec)
MCAPI bool SetLocalCertificate(::webrtc::scoped_refptr<::webrtc::RTCCertificate > const &certificate)
MCAPI::webrtc::RtpTransportInternal * GetRtpTransport(::std::string_view mid) const
MCAPI void SetActiveResetSrtpParams(bool active_reset_srtp_params)
MCAPI::webrtc::RTCError ValidateContent(::webrtc::ContentInfo const &content_info)
MCAPI void OnTransportStateChanged_n(::webrtc::IceTransportInternal *transport)
MCAPI ::std::unique_ptr<::webrtc::SSLCertChain > GetRemoteSSLCertChain(::std::string const &transport_name) const
MCAPI bool GetStats(::std::string const &transport_name, ::webrtc::TransportStats *stats) const
MCAPI ::std::vector<::webrtc::DtlsTransportInternal * > GetDtlsTransports()
MCAPI::webrtc::RTCError ValidateAndMaybeUpdateBundleGroups(bool local, ::webrtc::SdpType type, ::webrtc::SessionDescription const *local_desc, ::webrtc::SessionDescription const *remote_desc)
MCAPI ::webrtc::scoped_refptr<::webrtc::DtlsTransport > LookupDtlsTransportByMid(::std::string const &mid)
MCAPI ::webrtc::scoped_refptr<::webrtc::IceTransportInterface > CreateIceTransport(::std::string const &transport_name, bool rtcp)
MCAPI ::webrtc::RTCErrorOr<::webrtc::PayloadType > $SuggestPayloadType(::std::string const &mid, ::webrtc::Codec codec)
MCAPI::webrtc::DtlsTransportInternal * GetDtlsTransport(::std::string const &mid)
MCAPI::webrtc::RTCError SetRemoteDescription(::webrtc::SdpType type, ::webrtc::SessionDescription const *local_desc, ::webrtc::SessionDescription const *remote_desc)
MCAPI void OnTransportRoleConflict_n(::webrtc::IceTransportInternal *transport)
MCAPI void OnTransportCandidateGathered_n(::webrtc::IceTransportInternal *transport, ::webrtc::Candidate const &candidate)
MCAPI void SetIceRole_n(::webrtc::IceRole ice_role)
MCAPI ::std::vector< int > GetEncryptedHeaderExtensionIds(::webrtc::ContentInfo const &content_info)
MCAPI::webrtc::DataChannelTransportInterface * GetDataChannelTransport(::std::string const &mid) const
MCAPI::webrtc::JsepTransportDescription CreateJsepTransportDescription(::webrtc::ContentInfo const &content_info, ::webrtc::TransportInfo const &transport_info, ::std::vector< int > const &encrypted_extension_ids, int rtp_abs_sendtime_extn_id)
MCAPI void OnTransportReceivingState_n(::webrtc::PacketTransportInternal *transport)
MCAPI ::std::optional<::webrtc::SSLRole > GetDtlsRole(::std::string const &mid) const
MCAPI void OnTransportWritableState_n(::webrtc::PacketTransportInternal *transport)
static MCAPI void ** $vftableForPayloadTypeSuggester()
MCAPI::webrtc::RTCError SetLocalDescription(::webrtc::SdpType type, ::webrtc::SessionDescription const *local_desc, ::webrtc::SessionDescription const *remote_desc)
MCAPI void SetIceConfig(::webrtc::IceConfig const &config)
MCAPI void * $ctor(::webrtc::Environment const &env, ::webrtc::Thread *network_thread, ::webrtc::PortAllocator *port_allocator, ::webrtc::AsyncDnsResolverFactoryInterface *async_dns_resolver_factory, ::webrtc::LocalNetworkAccessPermissionFactoryInterface *lna_permission_factory, ::webrtc::PayloadTypePicker &payload_type_picker, ::webrtc::JsepTransportController::Config config)
MCAPI::webrtc::RTCError AddRemoteCandidates(::std::string const &transport_name, ::std::vector<::webrtc::Candidate > const &candidates)
MCAPI bool RemoveRemoteCandidate(::webrtc::IceCandidate const *c)
MCAPI::webrtc::RTCError RollbackTransports()
MCAPI ::std::vector<::webrtc::DtlsTransportInternal * > GetActiveDtlsTransports()
static MCAPI void ** $vftableForHasSlots()
MCAPI ::std::unique_ptr<::webrtc::DtlsTransportInternal > CreateDtlsTransport(::webrtc::ContentInfo const &content_info, ::webrtc::IceTransportInternal *ice)
MCAPI ::webrtc::scoped_refptr<::webrtc::SctpTransport > GetSctpTransport(::std::string const &mid) const
MCAPI::webrtc::RTCError ApplyDescription_n(bool local, ::webrtc::SdpType type, ::webrtc::SessionDescription const *local_desc, ::webrtc::SessionDescription const *remote_desc)
MCAPI::webrtc::RTCError MaybeCreateJsepTransport(bool local, ::webrtc::ContentInfo const &content_info, ::webrtc::SessionDescription const &description)
MCAPI bool NeedsIceRestart(::std::string const &transport_name) const
MCAPI JsepTransportController(::webrtc::Environment const &env, ::webrtc::Thread *network_thread, ::webrtc::PortAllocator *port_allocator, ::webrtc::AsyncDnsResolverFactoryInterface *async_dns_resolver_factory, ::webrtc::LocalNetworkAccessPermissionFactoryInterface *lna_permission_factory, ::webrtc::PayloadTypePicker &payload_type_picker, ::webrtc::JsepTransportController::Config config)
MCAPI ::webrtc::scoped_refptr<::webrtc::RTCCertificate > GetLocalCertificate(::std::string const &transport_name) const
Definition LocalNetworkAccessPermissionFactoryInterface.h:12
Definition PacketTransportInternal.h:20
Definition PayloadTypePicker.h:18
Definition PayloadTypeSuggester.h:17
Definition PayloadType.h:15
Definition PortAllocator.h:26
Definition RTCCertificate.h:18
Definition RTCError.h:10
Definition RtpTransportInternal.h:21
Definition SSLCertChain.h:13
Definition SctpTransport.h:28
Definition SessionDescription.h:18
Definition Thread.h:20
Definition scoped_refptr.h:8
Definition Alias.h:14
Definition Codec.h:13
Definition IceConfig.h:16
Definition JsepTransportController.h:86
Definition JsepTransportDescription.h:12
Definition TransportInfo.h:7
Definition TransportStats.h:7