3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/dcsctp/DcSctpSocketCallbacks.h"
7#include "mc/external/dcsctp/ErrorKind.h"
8#include "mc/external/dcsctp/SendPacketStatus.h"
9#include "mc/external/sigslot/has_slots.h"
10#include "mc/external/sigslot/single_threaded.h"
11#include "mc/external/webrtc/ArrayView.h"
12#include "mc/external/webrtc/SctpTransportInternal.h"
13#include "mc/external/webrtc/StrongAlias.h"
14#include "mc/external/webrtc/TaskQueueBase.h"
21namespace dcsctp {
class TimeMs; }
22namespace dcsctp {
class Timeout; }
30namespace webrtc {
class Thread; }
59 StreamState& operator=(StreamState
const&);
60 StreamState(StreamState
const&);
84 DcSctpTransport& operator=(DcSctpTransport
const&);
85 DcSctpTransport(DcSctpTransport
const&);
91 virtual ~DcSctpTransport() ;
93 virtual void SetOnConnectedCallback(::std::function<
void()> callback) ;
103 virtual bool ResetStream(
int sid) ;
105 virtual ::webrtc::RTCError
108 virtual bool ReadyToSendData() ;
110 virtual int max_message_size() const ;
112 virtual ::
std::optional<
int> max_outbound_streams() const ;
114 virtual ::
std::optional<
int> max_inbound_streams() const ;
116 virtual uint64 buffered_amount(
int sid) const ;
118 virtual uint64 buffered_amount_low_threshold(
int sid) const ;
120 virtual
void SetBufferedAmountLowThreshold(
int sid, uint64 bytes) ;
122 virtual
void set_debug_name_for_testing(
char const* debug_name) ;
124 virtual ::dcsctp::SendPacketStatus SendPacketWithStatus(::webrtc::
ArrayView<uchar const> data) ;
126 virtual ::
std::unique_ptr<::dcsctp::Timeout>
127 CreateTimeout(::webrtc::
TaskQueueBase::DelayPrecision precision) ;
129 virtual ::dcsctp::TimeMs TimeMillis() ;
131 virtual uint GetRandomInt(uint low, uint high) ;
133 virtual
void OnTotalBufferedAmountLow() ;
135 virtual
void OnBufferedAmountLow(::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> stream_id) ;
137 virtual
void OnMessageReceived(::dcsctp::DcSctpMessage message) ;
139 virtual
void OnError(::dcsctp::ErrorKind error, ::
std::string_view message) ;
141 virtual
void OnAborted(::dcsctp::ErrorKind error, ::
std::string_view message) ;
143 virtual
void OnConnected() ;
145 virtual
void OnClosed() ;
147 virtual
void OnConnectionRestarted() ;
149 virtual
void OnStreamsResetFailed(
150 ::webrtc::
ArrayView<::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> const> outgoing_streams,
151 ::
std::string_view reason
154 virtual
void OnStreamsResetPerformed(
155 ::webrtc::
ArrayView<::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> const> outgoing_streams
158 virtual
void OnIncomingStreamsReset(
159 ::webrtc::
ArrayView<::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> const> incoming_streams
168 MCNAPI DcSctpTransport(
170 ::webrtc::
Thread* network_thread,
174 MCNAPI DcSctpTransport(
176 ::webrtc::
Thread* network_thread,
178 ::
std::unique_ptr<::dcsctp::DcSctpSocketFactory> socket_factory
191 ::webrtc::
Thread* network_thread,
197 ::webrtc::
Thread* network_thread,
199 ::
std::unique_ptr<::dcsctp::DcSctpSocketFactory> socket_factory
257 MCNAPI
void $OnError(::dcsctp::ErrorKind error, ::
std::string_view message);
259 MCNAPI
void $OnAborted(::dcsctp::ErrorKind error, ::
std::string_view message);
268 ::webrtc::
ArrayView<::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> const> outgoing_streams,
269 ::
std::string_view reason
273 ::webrtc::
ArrayView<::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> const> outgoing_streams
277 ::webrtc::
ArrayView<::webrtc::
StrongAlias<::dcsctp::StreamIDTag, ushort> const> incoming_streams
Definition DcSctpMessage.h:7
Definition DcSctpSocketCallbacks.h:24
Definition DcSctpSocketFactory.h:15
Definition StreamIDTag.h:7
Definition CopyOnWriteBuffer.h:11
Definition DataChannelSink.h:16
MCAPI::dcsctp::TimeMs $TimeMillis()
MCAPI void ConnectTransportSignals()
MCAPI::dcsctp::SendPacketStatus $SendPacketWithStatus(::webrtc::ArrayView< uchar const > data)
MCAPI void $OnStreamsResetFailed(::webrtc::ArrayView<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > const > outgoing_streams, ::std::string_view reason)
MCAPI uint $GetRandomInt(uint low, uint high)
MCAPI void $OnTotalBufferedAmountLow()
static MCAPI void ** $vftableForHasSlots()
MCAPI void $OnBufferedAmountLow(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id)
MCAPI void $OnMessageReceived(::dcsctp::DcSctpMessage message)
MCAPI void $OnConnectionRestarted()
static MCAPI void ** $vftableForDcSctpSocketCallbacks()
MCAPI void * $ctor(::webrtc::Environment const &env, ::webrtc::Thread *network_thread, ::webrtc::DtlsTransportInternal *transport)
MCAPI uint64 $buffered_amount_low_threshold(int sid) const
MCAPI void $OnError(::dcsctp::ErrorKind error, ::std::string_view message)
MCAPI void $SetOnConnectedCallback(::std::function< void()> callback)
MCAPI bool $OpenStream(int sid, ::webrtc::PriorityValue priority)
MCAPI void $OnConnected()
MCAPI void $set_debug_name_for_testing(char const *debug_name)
MCAPI ::std::optional< int > $max_outbound_streams() const
static MCAPI void ** $vftableForSctpTransportInternal()
MCAPI void $OnStreamsResetPerformed(::webrtc::ArrayView<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > const > outgoing_streams)
MCAPI bool $ReadyToSendData()
MCAPI void $OnIncomingStreamsReset(::webrtc::ArrayView<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > const > incoming_streams)
MCAPI ::std::optional< int > $max_inbound_streams() const
MCAPI::webrtc::RTCError $SendData(int sid, ::webrtc::SendDataParams const ¶ms, ::webrtc::CopyOnWriteBuffer const &payload)
MCAPI bool $ResetStream(int sid)
MCAPI bool $Start(::webrtc::SctpOptions const &options)
MCAPI void OnTransportWritableState(::webrtc::PacketTransportInternal *transport)
MCAPI void $SetBufferedAmountLowThreshold(int sid, uint64 bytes)
MCAPI int $max_message_size() const
MCAPI ::std::unique_ptr<::dcsctp::Timeout > $CreateTimeout(::webrtc::TaskQueueBase::DelayPrecision precision)
MCAPI void $OnAborted(::dcsctp::ErrorKind error, ::std::string_view message)
MCAPI void $SetDataChannelSink(::webrtc::DataChannelSink *sink)
MCAPI uint64 $buffered_amount(int sid) const
MCAPI void MaybeConnectSocket()
MCAPI void $SetDtlsTransport(::webrtc::DtlsTransportInternal *transport)
Definition DtlsTransportInternal.h:22
Definition Environment.h:7
Definition PacketTransportInternal.h:20
Definition PriorityValue.h:16
Definition SctpTransportInternal.h:18
Definition StrongAlias.h:8
Definition TaskQueueBase.h:16
Definition DcSctpTransport.h:47
Definition SctpOptions.h:7
Definition SendDataParams.h:7