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 webrtc { class DataChannelInterface; }
18namespace webrtc { class DataChannelTransportInterface; }
19namespace webrtc { class RTCError; }
20namespace webrtc { class SctpDataChannel; }
21namespace webrtc { class StreamId; }
22namespace webrtc { struct DataChannelStats; }
23namespace webrtc { struct InternalDataChannelInit; }
24namespace webrtc { struct SendDataParams; }
25// clang-format on
26
27namespace webrtc {
28
29class DataChannelController : public ::webrtc::SctpDataChannelControllerInterface, public ::webrtc::DataChannelSink {
30public:
31 // DataChannelController inner types define
32 enum class DataChannelUsage : uchar {
33 KNeverUsed = 0,
34 KHaveBeenUsed = 1,
35 KInUse = 2,
36 };
37
38public:
39 // member variables
40 // NOLINTBEGIN
48 // NOLINTEND
49
50public:
51 // prevent constructor by default
52 DataChannelController& operator=(DataChannelController const&);
53 DataChannelController(DataChannelController const&);
54 DataChannelController();
55
56public:
57 // virtual functions
58 // NOLINTBEGIN
59 virtual ~DataChannelController() /*override*/;
60
61 virtual ::webrtc::RTCError SendData(
63 ::webrtc::SendDataParams const& params,
64 ::rtc::CopyOnWriteBuffer const& payload
65 ) /*override*/;
66
67 virtual void AddSctpDataStream(::webrtc::StreamId sid) /*override*/;
68
69 virtual void RemoveSctpDataStream(::webrtc::StreamId sid) /*override*/;
70
71 virtual void OnChannelStateChanged(
73 ::webrtc::DataChannelInterface::DataState state
74 ) /*override*/;
75
76 virtual uint64 buffered_amount(::webrtc::StreamId sid) const /*override*/;
77
78 virtual uint64 buffered_amount_low_threshold(::webrtc::StreamId sid) const /*override*/;
79
80 virtual void SetBufferedAmountLowThreshold(::webrtc::StreamId sid, uint64 bytes) /*override*/;
81
82 virtual void
83 OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const& buffer) /*override*/;
84
85 virtual void OnChannelClosing(int channel_id) /*override*/;
86
87 virtual void OnChannelClosed(int channel_id) /*override*/;
88
89 virtual void OnReadyToSend() /*override*/;
90
91 virtual void OnTransportClosed(::webrtc::RTCError error) /*override*/;
92
93 virtual void OnBufferedAmountLow(int channel_id) /*override*/;
94 // NOLINTEND
95
96public:
97 // member functions
98 // NOLINTBEGIN
99 MCNAPI void AllocateSctpSids(::rtc::SSLRole role);
100
101 MCNAPI ::webrtc::RTCErrorOr<::webrtc::scoped_refptr<::webrtc::SctpDataChannel>>
102 CreateDataChannel(::std::string const& label, ::webrtc::InternalDataChannelInit& config);
103
104 MCNAPI ::std::vector<::webrtc::DataChannelStats> GetDataChannelStats() const;
105
106 MCNAPI bool
107 HandleOpenMessage_n(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const& buffer);
108
109 MCNAPI bool HasDataChannels() const;
110
111 MCNAPI bool HasUsedDataChannels() const;
112
113 MCNAPI ::webrtc::RTCErrorOr<::webrtc::scoped_refptr<::webrtc::DataChannelInterface>>
115
116 MCNAPI void
118
119 MCNAPI void OnTransportChanged(::webrtc::DataChannelTransportInterface* new_data_channel_transport);
120
121 MCNAPI void PrepareForShutdown();
122
123 MCNAPI ::webrtc::RTCError
124 ReserveOrAllocateSid(::std::optional<::webrtc::StreamId>& sid, ::std::optional<::rtc::SSLRole> fallback_ssl_role);
125
127
129
131 // NOLINTEND
132
133public:
134 // destructor thunk
135 // NOLINTBEGIN
136 MCNAPI void $dtor();
137 // NOLINTEND
138
139public:
140 // virtual function thunks
141 // NOLINTBEGIN
142 MCNAPI ::webrtc::RTCError
144
146
148
149 MCNAPI void
150 $OnChannelStateChanged(::webrtc::SctpDataChannel* channel, ::webrtc::DataChannelInterface::DataState state);
151
152 MCNAPI uint64 $buffered_amount(::webrtc::StreamId sid) const;
153
155
157
158 MCNAPI void $OnDataReceived(int channel_id, ::webrtc::DataMessageType type, ::rtc::CopyOnWriteBuffer const& buffer);
159
160 MCNAPI void $OnChannelClosing(int channel_id);
161
162 MCNAPI void $OnChannelClosed(int channel_id);
163
164 MCNAPI void $OnReadyToSend();
165
167
168 MCNAPI void $OnBufferedAmountLow(int channel_id);
169
170
171 // NOLINTEND
172
173public:
174 // vftables
175 // NOLINTBEGIN
176 MCNAPI static void** $vftableForDataChannelSink();
177
179 // NOLINTEND
180};
181
182} // namespace webrtc
Definition CopyOnWriteBuffer.h:11
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 uint64 $buffered_amount(::webrtc::StreamId sid) const
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 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 bool HasUsedDataChannels() const
MCAPI void $OnChannelClosed(int channel_id)
MCAPI void $OnBufferedAmountLow(int channel_id)
Definition DataChannelInterface.h:19
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 DataChannelStats.h:7
Definition InternalDataChannelInit.h:10
Definition SendDataParams.h:7