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/webrtc/ArrayView.h"
7#include "mc/external/webrtc/DataChannelEventObserverInterface.h"
8#include "mc/external/webrtc/DataChannelInterface.h"
9#include "mc/external/webrtc/DataChannelSink.h"
10#include "mc/external/webrtc/DataMessageType.h"
11#include "mc/external/webrtc/RTCErrorOr.h"
12#include "mc/external/webrtc/SSLRole.h"
13#include "mc/external/webrtc/SctpDataChannelControllerInterface.h"
14#include "mc/external/webrtc/scoped_refptr.h"
15
16// auto generated forward declare list
17// clang-format off
18namespace webrtc { class CopyOnWriteBuffer; }
19namespace webrtc { class DataChannelEventObserverInterface; }
20namespace webrtc { class DataChannelInterface; }
21namespace webrtc { class DataChannelTransportInterface; }
22namespace webrtc { class PriorityValue; }
23namespace webrtc { class RTCError; }
24namespace webrtc { class SctpDataChannel; }
25namespace webrtc { class StreamId; }
26namespace webrtc { struct DataChannelStats; }
27namespace webrtc { struct InternalDataChannelInit; }
28namespace webrtc { struct SendDataParams; }
29// clang-format on
30
31namespace webrtc {
32
33class DataChannelController : public ::webrtc::SctpDataChannelControllerInterface, public ::webrtc::DataChannelSink {
34public:
35 // DataChannelController inner types define
36 enum class DataChannelUsage : uchar {
37 KNeverUsed = 0,
38 KHaveBeenUsed = 1,
39 KInUse = 2,
40 };
41
42public:
43 // member variables
44 // NOLINTBEGIN
53 // NOLINTEND
54
55public:
56 // prevent constructor by default
57 DataChannelController& operator=(DataChannelController const&);
58 DataChannelController(DataChannelController const&);
59 DataChannelController();
60
61public:
62 // virtual functions
63 // NOLINTBEGIN
64 virtual ~DataChannelController() /*override*/;
65
66 virtual ::webrtc::RTCError SendData(
68 ::webrtc::SendDataParams const& params,
69 ::webrtc::CopyOnWriteBuffer const& payload
70 ) /*override*/;
71
72 virtual void AddSctpDataStream(::webrtc::StreamId sid, ::webrtc::PriorityValue priority) /*override*/;
73
74 virtual void RemoveSctpDataStream(::webrtc::StreamId sid) /*override*/;
75
76 virtual void OnChannelStateChanged(
78 ::webrtc::DataChannelInterface::DataState state
79 ) /*override*/;
80
81 virtual uint64 buffered_amount(::webrtc::StreamId sid) const /*override*/;
82
83 virtual uint64 buffered_amount_low_threshold(::webrtc::StreamId sid) const /*override*/;
84
85 virtual void SetBufferedAmountLowThreshold(::webrtc::StreamId sid, uint64 bytes) /*override*/;
86
87 virtual void OnDataReceived(
88 int channel_id,
89 ::webrtc::DataMessageType type,
91 ) /*override*/;
92
93 virtual void OnChannelClosing(int channel_id) /*override*/;
94
95 virtual void OnChannelClosed(int channel_id) /*override*/;
96
97 virtual void OnReadyToSend() /*override*/;
98
99 virtual void OnTransportClosed(::webrtc::RTCError error) /*override*/;
100
101 virtual void OnBufferedAmountLow(int channel_id) /*override*/;
102 // NOLINTEND
103
104public:
105 // member functions
106 // NOLINTBEGIN
107 MCNAPI void AllocateSctpSids(::webrtc::SSLRole role);
108
109 MCNAPI ::std::optional<::webrtc::DataChannelEventObserverInterface::Message> BuildObserverMessage(
111 ::webrtc::DataMessageType type,
113 ::webrtc::DataChannelEventObserverInterface::Message::Direction direction
114 ) const;
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, ::webrtc::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
131 MCNAPI void OnTransportChanged(::webrtc::DataChannelTransportInterface* new_data_channel_transport);
132
133 MCNAPI void PrepareForShutdown();
134
135 MCNAPI ::webrtc::RTCError ReserveOrAllocateSid(
136 ::std::optional<::webrtc::StreamId>& sid,
137 ::std::optional<::webrtc::SSLRole> fallback_ssl_role
138 );
139
140 MCNAPI void SetEventObserver(::std::unique_ptr<::webrtc::DataChannelEventObserverInterface> observer);
141
143
145
147 // NOLINTEND
148
149public:
150 // destructor thunk
151 // NOLINTBEGIN
152 MCNAPI void $dtor();
153 // NOLINTEND
154
155public:
156 // virtual function thunks
157 // NOLINTBEGIN
158 MCNAPI ::webrtc::RTCError $SendData(
160 ::webrtc::SendDataParams const& params,
161 ::webrtc::CopyOnWriteBuffer const& payload
162 );
163
165
167
168 MCNAPI void
169 $OnChannelStateChanged(::webrtc::SctpDataChannel* channel, ::webrtc::DataChannelInterface::DataState state);
170
171 MCNAPI uint64 $buffered_amount(::webrtc::StreamId sid) const;
172
174
176
177 MCNAPI void
178 $OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::webrtc::CopyOnWriteBuffer const& buffer);
179
180 MCNAPI void $OnChannelClosing(int channel_id);
181
182 MCNAPI void $OnChannelClosed(int channel_id);
183
184 MCNAPI void $OnReadyToSend();
185
187
188 MCNAPI void $OnBufferedAmountLow(int channel_id);
189
190
191 // NOLINTEND
192
193public:
194 // vftables
195 // NOLINTBEGIN
196 MCNAPI static void** $vftableForDataChannelSink();
197
199 // NOLINTEND
200};
201
202} // namespace webrtc
Definition ArrayView.h:8
Definition CopyOnWriteBuffer.h:11
MCAPI void $OnTransportClosed(::webrtc::RTCError error)
MCAPI void SetEventObserver(::std::unique_ptr<::webrtc::DataChannelEventObserverInterface > observer)
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 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
static MCAPI void ** $vftableForSctpDataChannelControllerInterface()
MCAPI void OnTransportChanged(::webrtc::DataChannelTransportInterface *new_data_channel_transport)
MCAPI ::std::optional<::webrtc::DataChannelEventObserverInterface::Message > BuildObserverMessage(::webrtc::StreamId sid, ::webrtc::DataMessageType type, ::webrtc::ArrayView< uchar const > payload, ::webrtc::DataChannelEventObserverInterface::Message::Direction direction) const
static MCAPI void ** $vftableForDataChannelSink()
MCAPI void $OnChannelClosing(int channel_id)
MCAPI uint64 $buffered_amount(::webrtc::StreamId sid) const
MCAPI::webrtc::RTCError ReserveOrAllocateSid(::std::optional<::webrtc::StreamId > &sid, ::std::optional<::webrtc::SSLRole > fallback_ssl_role)
MCAPI bool HasDataChannels() const
MCAPI void $OnChannelStateChanged(::webrtc::SctpDataChannel *channel, ::webrtc::DataChannelInterface::DataState state)
MCAPI::webrtc::RTCError $SendData(::webrtc::StreamId sid, ::webrtc::SendDataParams const &params, ::webrtc::CopyOnWriteBuffer const &payload)
MCAPI void $RemoveSctpDataStream(::webrtc::StreamId sid)
MCAPI void set_data_channel_transport(::webrtc::DataChannelTransportInterface *transport)
MCAPI void $AddSctpDataStream(::webrtc::StreamId sid, ::webrtc::PriorityValue priority)
MCAPI void $OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::webrtc::CopyOnWriteBuffer const &buffer)
MCAPI bool HasUsedDataChannels() const
MCAPI void AllocateSctpSids(::webrtc::SSLRole role)
MCAPI void $OnChannelClosed(int channel_id)
MCAPI void $OnBufferedAmountLow(int channel_id)
MCAPI bool HandleOpenMessage_n(int channel_id, ::webrtc::DataMessageType type, ::webrtc::CopyOnWriteBuffer const &buffer)
Definition DataChannelEventObserverInterface.h:7
Definition DataChannelInterface.h:19
Definition DataChannelSink.h:16
Definition DataChannelTransportInterface.h:16
Definition PriorityValue.h:16
Definition RTCError.h:10
Definition SctpDataChannelControllerInterface.h:20
Definition SctpDataChannel.h:29
Definition StreamId.h:7
Definition buffer.h:5
Definition Alias.h:14
Definition DataChannelStats.h:7
Definition InternalDataChannelInit.h:10
Definition SendDataParams.h:7