LeviLamina
Loading...
Searching...
No Matches
DataChannelController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/rtc/SSLRole.h"
7#include "mc/external/webrtc/DataChannelInterface.h"
8#include "mc/external/webrtc/DataChannelSink.h"
9#include "mc/external/webrtc/DataMessageType.h"
10#include "mc/external/webrtc/RTCErrorOr.h"
11#include "mc/external/webrtc/SctpDataChannelControllerInterface.h"
12#include "mc/external/webrtc/scoped_refptr.h"
13
14// auto generated forward declare list
15// clang-format off
16namespace rtc { class CopyOnWriteBuffer; }
17namespace rtc { class Thread; }
18namespace webrtc { class DataChannelInterface; }
19namespace webrtc { class DataChannelTransportInterface; }
20namespace webrtc { class RTCError; }
21namespace webrtc { class SctpDataChannel; }
22namespace webrtc { class StreamId; }
23namespace webrtc { struct DataChannelStats; }
24namespace webrtc { struct InternalDataChannelInit; }
25namespace webrtc { struct SendDataParams; }
26// clang-format on
27
28namespace webrtc {
29
31public:
32 // DataChannelController inner types define
33 enum class DataChannelUsage : uchar {
34 KNeverUsed = 0,
35 KHaveBeenUsed = 1,
36 KInUse = 2,
37 };
38
39public:
40 // member variables
41 // NOLINTBEGIN
49 // NOLINTEND
50
51public:
52 // prevent constructor by default
56
57public:
58 // virtual functions
59 // NOLINTBEGIN
60 // vIndex: 7
61 virtual ~DataChannelController() /*override*/;
62
63 // vIndex: 0
64 virtual ::webrtc::RTCError SendData(
66 ::webrtc::SendDataParams const& params,
67 ::rtc::CopyOnWriteBuffer const& payload
68 ) /*override*/;
69
70 // vIndex: 1
71 virtual void AddSctpDataStream(::webrtc::StreamId sid) /*override*/;
72
73 // vIndex: 2
74 virtual void RemoveSctpDataStream(::webrtc::StreamId sid) /*override*/;
75
76 // vIndex: 3
77 virtual void OnChannelStateChanged(
79 ::webrtc::DataChannelInterface::DataState state
80 ) /*override*/;
81
82 // vIndex: 4
83 virtual uint64 buffered_amount(::webrtc::StreamId sid) const /*override*/;
84
85 // vIndex: 5
86 virtual uint64 buffered_amount_low_threshold(::webrtc::StreamId sid) const /*override*/;
87
88 // vIndex: 6
89 virtual void SetBufferedAmountLowThreshold(::webrtc::StreamId sid, uint64 bytes) /*override*/;
90
91 // vIndex: 1
92 virtual void
93 OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const& buffer) /*override*/;
94
95 // vIndex: 2
96 virtual void OnChannelClosing(int channel_id) /*override*/;
97
98 // vIndex: 3
99 virtual void OnChannelClosed(int channel_id) /*override*/;
100
101 // vIndex: 4
102 virtual void OnReadyToSend() /*override*/;
103
104 // vIndex: 5
105 virtual void OnTransportClosed(::webrtc::RTCError error) /*override*/;
106
107 // vIndex: 6
108 virtual void OnBufferedAmountLow(int channel_id) /*override*/;
109 // NOLINTEND
110
111public:
112 // member functions
113 // NOLINTBEGIN
114 MCNAPI void AllocateSctpSids(::rtc::SSLRole role);
115
116 MCNAPI ::webrtc::RTCErrorOr<::webrtc::scoped_refptr<::webrtc::SctpDataChannel>>
117 CreateDataChannel(::std::string const& label, ::webrtc::InternalDataChannelInit& config);
118
119 MCNAPI ::std::vector<::webrtc::DataChannelStats> GetDataChannelStats() const;
120
121 MCNAPI bool
122 HandleOpenMessage_n(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const& buffer);
123
124 MCNAPI bool HasDataChannels() const;
125
126 MCNAPI bool HasUsedDataChannels() const;
127
128 MCNAPI ::webrtc::RTCErrorOr<::webrtc::scoped_refptr<::webrtc::DataChannelInterface>>
130
132
133 MCNAPI void
135
137
138 MCNAPI void OnTransportChanged(::webrtc::DataChannelTransportInterface* new_data_channel_transport);
139
140 MCNAPI void PrepareForShutdown();
141
142 MCNAPI ::webrtc::RTCError
143 ReserveOrAllocateSid(::std::optional<::webrtc::StreamId>& sid, ::std::optional<::rtc::SSLRole> fallback_ssl_role);
144
146
148
149 MCNAPI ::rtc::Thread* network_thread() const;
150
152
153 MCNAPI ::rtc::Thread* signaling_thread() const;
154 // NOLINTEND
155
156public:
157 // destructor thunk
158 // NOLINTBEGIN
159 MCNAPI void $dtor();
160 // NOLINTEND
161
162public:
163 // virtual function thunks
164 // NOLINTBEGIN
165 MCNAPI ::webrtc::RTCError
167
169
171
172 MCNAPI void
173 $OnChannelStateChanged(::webrtc::SctpDataChannel* channel, ::webrtc::DataChannelInterface::DataState state);
174
175 MCNAPI uint64 $buffered_amount(::webrtc::StreamId sid) const;
176
178
180
181 MCNAPI void $OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const& buffer);
182
183 MCNAPI void $OnChannelClosing(int channel_id);
184
185 MCNAPI void $OnChannelClosed(int channel_id);
186
187 MCNAPI void $OnReadyToSend();
188
190
191 MCNAPI void $OnBufferedAmountLow(int channel_id);
192 // NOLINTEND
193
194public:
195 // vftables
196 // NOLINTBEGIN
197 MCNAPI static void** $vftableForDataChannelSink();
198
200 // NOLINTEND
201};
202
203} // namespace webrtc
Definition CopyOnWriteBuffer.h:11
Definition DataChannelController.h:30
MCAPI void $OnTransportClosed(::webrtc::RTCError error)
MCAPI void $AddSctpDataStream(::webrtc::StreamId sid)
MCAPI void SetupDataChannelTransport_n(::webrtc::DataChannelTransportInterface *transport)
MCAPI uint64 $buffered_amount_low_threshold(::webrtc::StreamId sid) const
MCAPI ::webrtc::RTCErrorOr<::webrtc::scoped_refptr<::webrtc::DataChannelInterface > > InternalCreateDataChannelWithProxy(::std::string const &label, ::webrtc::InternalDataChannelInit const &config)
MCAPI::webrtc::RTCError $SendData(::webrtc::StreamId sid, ::webrtc::SendDataParams const &params, ::rtc::CopyOnWriteBuffer const &payload)
MCAPI void TeardownDataChannelTransport_n(::webrtc::RTCError error)
MCAPI ::webrtc::RTCErrorOr<::webrtc::scoped_refptr<::webrtc::SctpDataChannel > > CreateDataChannel(::std::string const &label, ::webrtc::InternalDataChannelInit &config)
MCAPI void $SetBufferedAmountLowThreshold(::webrtc::StreamId sid, uint64 bytes)
MCAPI ::std::vector<::webrtc::DataChannelStats > GetDataChannelStats() const
MCAPI bool HandleOpenMessage_n(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const &buffer)
static MCAPI void ** $vftableForSctpDataChannelControllerInterface()
MCAPI void OnTransportChanged(::webrtc::DataChannelTransportInterface *new_data_channel_transport)
static MCAPI void ** $vftableForDataChannelSink()
MCAPI void $OnChannelClosing(int channel_id)
MCAPI::rtc::Thread * signaling_thread() const
MCAPI uint64 $buffered_amount(::webrtc::StreamId sid) const
MCAPI void OnSctpDataChannelClosed(::webrtc::SctpDataChannel *channel)
MCAPI bool HasDataChannels() const
MCAPI void $OnChannelStateChanged(::webrtc::SctpDataChannel *channel, ::webrtc::DataChannelInterface::DataState state)
MCAPI void $RemoveSctpDataStream(::webrtc::StreamId sid)
MCAPI void set_data_channel_transport(::webrtc::DataChannelTransportInterface *transport)
MCAPI::rtc::Thread * network_thread() const
MCAPI void $OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const &buffer)
MCAPI void OnDataChannelOpenMessage(::webrtc::scoped_refptr<::webrtc::SctpDataChannel > channel, bool ready_to_send)
MCAPI::webrtc::RTCError ReserveOrAllocateSid(::std::optional<::webrtc::StreamId > &sid, ::std::optional<::rtc::SSLRole > fallback_ssl_role)
MCAPI void AllocateSctpSids(::rtc::SSLRole role)
MCAPI void NotifyDataChannelsOfTransportCreated()
MCAPI bool HasUsedDataChannels() const
MCAPI void $OnChannelClosed(int channel_id)
MCAPI void $OnBufferedAmountLow(int channel_id)
Definition DataChannelSink.h:16
Definition DataChannelTransportInterface.h:15
Definition RTCError.h:10
Definition SctpDataChannelControllerInterface.h:19
Definition SctpDataChannel.h:29
Definition StreamId.h:7
Definition scoped_refptr.h:8
Definition buffer.h:5
Definition Alias.h:14
Definition InternalDataChannelInit.h:10
Definition SendDataParams.h:7