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/ArrayView.h"
14#include "mc/external/webrtc/StrongAlias.h"
28namespace dcsctp {
class TSNTag; }
36namespace dcsctp {
struct Metrics; }
51 enum class State :
int {
58 KShutdownReceived = 6,
62 struct ConnectParameters {
72 ConnectParameters& operator=(ConnectParameters
const&);
73 ConnectParameters(ConnectParameters
const&);
98 DcSctpSocket& operator=(DcSctpSocket
const&);
99 DcSctpSocket(DcSctpSocket
const&);
107 virtual uint64 MessagesReady() const ;
111 virtual
void HandleTimeout(::webrtc::StrongAlias<::dcsctp::
TimeoutTag, uint64> timeout_id) ;
113 virtual
void Connect() ;
117 virtual
void Shutdown() ;
119 virtual
void Close() ;
121 virtual ::dcsctp::SendStatus
124 virtual ::
std::vector<::dcsctp::SendStatus> SendMany(
129 virtual ::dcsctp::ResetStreamsStatus ResetStreams(
130 ::webrtc::ArrayView<::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> const> outgoing_streams
133 virtual ::dcsctp::SocketState state() const ;
137 virtual
void SetMaxMessageSize(uint64 max_message_size) ;
139 virtual
void SetStreamPriority(
140 ::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id,
145 GetStreamPriority(::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id) const ;
147 virtual uint64 buffered_amount(::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id) const ;
149 virtual uint64 buffered_amount_low_threshold(::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id) const
152 virtual
void SetBufferedAmountLowThreshold(
153 ::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id,
157 virtual ::
std::optional<::dcsctp::
Metrics> GetMetrics() const ;
163 virtual ::dcsctp::SctpImplementation peer_implementation() const ;
165 virtual ~DcSctpSocket() = default;
176 ::webrtc::StrongAlias<::dcsctp::
TSNTag, uint> my_initial_tsn,
178 ::webrtc::StrongAlias<::dcsctp::
TSNTag, uint> peer_initial_tsn,
180 ::webrtc::StrongAlias<::dcsctp::
TieTagTag, uint64> tie_tag
184 ::
std::string_view log_prefix,
214 MCNAPI ::dcsctp::SendStatus
227 MCNAPI
void OnSentPacket(::webrtc::ArrayView<uchar const> packet, ::dcsctp::SendPacketStatus status);
246 ::
std::string_view log_prefix,
274 MCNAPI ::
std::vector<::dcsctp::SendStatus>
277 MCNAPI ::dcsctp::ResetStreamsStatus
280 MCNAPI ::dcsctp::SocketState
$state() const;
287 ::webrtc::StrongAlias<::dcsctp::
StreamIDTag, ushort> stream_id,
Definition AnyDataChunk.h:18
Definition AnyForwardTsnChunk.h:16
Definition DcSctpMessage.h:7
Definition DcSctpSocketCallbacks.h:24
Definition DcSctpSocketInterface.h:28
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 MaybeDeliverMessages()
MCAPI void HandleForwardTsnCommon(::dcsctp::AnyForwardTsnChunk const &chunk)
MCAPI void HandleInit(::dcsctp::CommonHeader const &, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
static MCAPI void ** $vftable()
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 ::std::vector<::dcsctp::SendStatus > $SendMany(::webrtc::ArrayView<::dcsctp::DcSctpMessage > messages, ::dcsctp::SendOptions const &send_options)
MCAPI void $RestoreFromState(::dcsctp::DcSctpSocketHandoverState const &state)
MCAPI ::std::optional<::dcsctp::DcSctpSocketHandoverState > $GetHandoverStateAndClose()
MCAPI::dcsctp::SctpImplementation $peer_implementation() const
MCAPI void OnSentPacket(::webrtc::ArrayView< uchar const > packet, ::dcsctp::SendPacketStatus status)
MCAPI::webrtc::TimeDelta OnInitTimerExpiry()
MCAPI void ReportFailedToParseChunk(int chunk_type)
MCAPI void CloseConnectionBecauseOfTooManyTransmissionErrors()
MCAPI void $ReceivePacket(::webrtc::ArrayView< uchar const > data)
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 SendShutdown()
MCAPI::webrtc::TimeDelta OnCookieTimerExpiry()
MCAPI void HandleDataCommon(::dcsctp::AnyDataChunk &chunk)
MCAPI bool HandleCookieEchoWithTCB(::dcsctp::CommonHeader const &header, ::dcsctp::StateCookie const &cookie)
MCAPI ::std::optional<::dcsctp::DcSctpMessage > $GetNextMessage()
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::dcsctp::ResetStreamsStatus $ResetStreams(::webrtc::ArrayView<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > const > outgoing_streams)
MCAPI void HandleError(::dcsctp::CommonHeader const &, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI uint64 $MessagesReady() const
MCAPI void MaybeSendResetStreamsRequest()
MCAPI void MaybeSendShutdownOrAck()
MCAPI void HandleShutdownAck(::dcsctp::CommonHeader const &header, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
MCAPI void HandleInitAck(::dcsctp::CommonHeader const &, ::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)
MCAPI void HandleAbort(::dcsctp::CommonHeader const &, ::dcsctp::SctpPacket::ChunkDescriptor const &descriptor)
Definition HandoverReadinessStatus.h:15
Definition PacketObserver.h:15
Definition SctpPacket.h:18
Definition StateCookie.h:10
Definition StreamIDTag.h:7
Definition StreamPriorityTag.h:7
Definition TimeoutTag.h:7
Definition VerificationTagTag.h:7
Definition TimeDelta.h:10
Definition Capabilities.h:7
Definition DcSctpOptions.h:7
Definition DcSctpSocketHandoverState.h:7
Definition DcSctpSocket.h:62
Definition SendOptions.h:7