3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/dcsctp/DcSctpSocketInterface.h"
7#include "mc/external/dcsctp/ResetStreamsStatus.h"
8#include "mc/external/dcsctp/SctpImplementation.h"
9#include "mc/external/dcsctp/SctpPacket.h"
10#include "mc/external/dcsctp/SendPacketStatus.h"
11#include "mc/external/dcsctp/SendStatus.h"
12#include "mc/external/dcsctp/SocketState.h"
13#include "mc/external/webrtc/StrongAlias.h"
27namespace dcsctp {
class TSNTag; }
35namespace dcsctp {
struct Metrics; }
50 enum class State :
int {
57 KShutdownReceived = 6,
61 struct ConnectParameters {
71 ConnectParameters& operator=(ConnectParameters
const&);
72 ConnectParameters(ConnectParameters
const&);
97 DcSctpSocket& operator=(DcSctpSocket
const&);
98 DcSctpSocket(DcSctpSocket
const&);
108 virtual void Connect() ;
112 virtual void Shutdown() ;
114 virtual void Close() ;
116 virtual ::dcsctp::SendStatus
119 virtual ::std::vector<::dcsctp::SendStatus> SendMany(
124 virtual ::dcsctp::ResetStreamsStatus ResetStreams(
128 virtual ::dcsctp::SocketState state() const ;
132 virtual
void SetMaxMessageSize(uint64 max_message_size) ;
134 virtual
void SetStreamPriority(
135 ::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id,
140 GetStreamPriority(::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id) const ;
142 virtual uint64 buffered_amount(::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id) const ;
144 virtual uint64 buffered_amount_low_threshold(::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id) const
147 virtual
void SetBufferedAmountLowThreshold(
148 ::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id,
152 virtual ::
std::optional<::dcsctp::
Metrics> GetMetrics() const ;
158 virtual ::dcsctp::SctpImplementation peer_implementation() const ;
160 virtual ~DcSctpSocket() = default;
171 ::webrtc::StrongAlias<::dcsctp::
TSNTag, uint> my_initial_tsn,
173 ::webrtc::StrongAlias<::dcsctp::
TSNTag, uint> peer_initial_tsn,
175 ::webrtc::StrongAlias<::dcsctp::
TieTagTag, uint64> tie_tag
179 ::
std::string_view log_prefix,
213 MCNAPI ::dcsctp::SendStatus
226 MCNAPI
void OnSentPacket(::rtc::ArrayView<uchar const> packet, ::dcsctp::SendPacketStatus status);
245 ::
std::string_view log_prefix,
269 MCNAPI ::
std::vector<::dcsctp::SendStatus>
272 MCNAPI ::dcsctp::ResetStreamsStatus
275 MCNAPI ::dcsctp::SocketState
$state() const;
282 ::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id,
Definition AnyDataChunk.h:18
Definition AnyForwardTsnChunk.h:16
Definition DcSctpMessage.h:16
Definition DcSctpSocketCallbacks.h:23
Definition DcSctpSocketInterface.h:27
MCAPI void $SetBufferedAmountLowThreshold(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id, uint64 bytes)
MCAPI bool Dispatch(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI::webrtc::TimeDelta OnShutdownTimerExpiry()
MCAPI void HandleInit(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI void MaybeDeliverMessages()
MCAPI void HandleForwardTsnCommon(::dcsctp::AnyForwardTsnChunk const &chunk)
MCAPI void OnSentPacket(::rtc::ArrayView< uchar const > packet, ::dcsctp::SendPacketStatus status)
static MCAPI void ** $vftable()
MCAPI void HandleError(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI::dcsctp::ResetStreamsStatus $ResetStreams(::rtc::ArrayView<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > const > outgoing_streams)
MCAPI void HandleCookieEcho(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI void $SetStreamPriority(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id, ::webrtc::StrongAlias<::dcsctp::StreamPriorityTag, ushort > priority)
MCAPI void $RestoreFromState(::dcsctp::DcSctpSocketHandoverState const &state)
MCAPI ::std::vector<::dcsctp::SendStatus > $SendMany(::rtc::ArrayView<::dcsctp::DcSctpMessage > messages, ::dcsctp::SendOptions const &send_options)
MCAPI ::std::optional<::dcsctp::DcSctpSocketHandoverState > $GetHandoverStateAndClose()
MCAPI::dcsctp::SctpImplementation $peer_implementation() const
MCAPI::webrtc::TimeDelta OnInitTimerExpiry()
MCAPI void ReportFailedToParseChunk(int chunk_type)
MCAPI void CloseConnectionBecauseOfTooManyTransmissionErrors()
MCAPI void HandleAbort(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI::dcsctp::SocketState $state() const
MCAPI::dcsctp::DcSctpOptions const & $options() const
MCAPI ::webrtc::StrongAlias<::dcsctp::StreamPriorityTag, ushort > $GetStreamPriority(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id) const
MCAPI uint64 $buffered_amount_low_threshold(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id) const
MCAPI::dcsctp::SendStatus InternalSend(::dcsctp::DcSctpMessage const &message, ::dcsctp::SendOptions const &send_options)
MCAPI uint64 $buffered_amount(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id) const
MCAPI void $HandleTimeout(::webrtc::StrongAlias<::dcsctp::TimeoutTag, uint64 > timeout_id)
MCAPI ::std::optional<::dcsctp::Metrics > $GetMetrics() const
MCAPI bool ValidatePacket(::dcsctp::SctpPacket const &packet)
MCAPI void $ReceivePacket(::rtc::ArrayView< uchar const > data)
MCAPI void SendShutdown()
MCAPI::webrtc::TimeDelta OnCookieTimerExpiry()
MCAPI void HandleDataCommon(::dcsctp::AnyDataChunk &chunk)
MCAPI bool HandleCookieEchoWithTCB(::dcsctp::CommonHeader const &header, ::dcsctp::StateCookie const &cookie)
MCAPI void CreateTransmissionControlBlock(::dcsctp::Capabilities const &capabilities, ::webrtc::StrongAlias<::dcsctp::VerificationTagTag, uint > my_verification_tag, ::webrtc::StrongAlias<::dcsctp::TSNTag, uint > my_initial_tsn, ::webrtc::StrongAlias<::dcsctp::VerificationTagTag, uint > peer_verification_tag, ::webrtc::StrongAlias<::dcsctp::TSNTag, uint > peer_initial_tsn, uint64 a_rwnd, ::webrtc::StrongAlias<::dcsctp::TieTagTag, uint64 > tie_tag)
MCAPI bool HandleUnrecognizedChunk(::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI void SendShutdownAck()
MCAPI::dcsctp::HandoverReadinessStatus $GetHandoverReadiness() const
MCAPI void HandleInitAck(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI void MaybeSendResetStreamsRequest()
MCAPI void MaybeSendShutdownOrAck()
MCAPI void HandleShutdownAck(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI void $SetMaxMessageSize(uint64 max_message_size)
MCAPI::dcsctp::SendStatus $Send(::dcsctp::DcSctpMessage message, ::dcsctp::SendOptions const &send_options)
MCAPI void * $ctor(::std::string_view log_prefix, ::dcsctp::DcSctpSocketCallbacks &callbacks, ::std::unique_ptr<::dcsctp::PacketObserver > packet_observer, ::dcsctp::DcSctpOptions const &options)
Definition HandoverReadinessStatus.h:15
Definition PacketObserver.h:12
Definition SctpPacket.h:17
Definition StateCookie.h:7
Definition StreamIDTag.h:7
Definition StreamPriorityTag.h:7
Definition TimeoutTag.h:7
Definition VerificationTagTag.h:7
Definition _HeaderOutputPredefine.h:310
Definition StrongAlias.h:8
Definition TimeDelta.h:10
Definition Capabilities.h:7
Definition DcSctpOptions.h:7
Definition DcSctpSocketHandoverState.h:7
Definition DcSctpSocket.h:61
Definition SendOptions.h:7