3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/external/dcsctp/SackChunk.h"
7#include "mc/external/dcsctp/UnwrappedSequenceNumber.h"
8#include "mc/external/webrtc/StrongAlias.h"
12namespace dcsctp {
class ForwardTsnChunk; }
13namespace dcsctp {
class IForwardTsnChunk; }
14namespace dcsctp {
class LifecycleId; }
15namespace dcsctp {
class MaxRetransmits; }
16namespace dcsctp {
class OutgoingMessageIdTag; }
17namespace dcsctp {
class StreamIDTag; }
18namespace dcsctp {
class TSNTag; }
19namespace dcsctp {
struct Data; }
20namespace webrtc {
class TimeDelta; }
21namespace webrtc {
class Timestamp; }
35 enum class State :
int {
38 KToBeRetransmitted = 2,
76 enum class NackAction :
int {
82 enum class Lifecycle : uchar {
84 KToBeRetransmitted = 1,
88 enum class AckState : uchar {
133 MCNAPI ::dcsctp::OutstandingData::Item::NackAction
Nack(
bool retransmit_now);
197 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>,
::dcsctp::Data>>
203 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>,
::dcsctp::Data>>
206 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>,
::dcsctp::Data>>
209 MCNAPI ::dcsctp::OutstandingData::Item
const&
212 MCNAPI ::dcsctp::OutstandingData::Item&
220 bool is_in_fast_recovery
223 MCNAPI ::std::optional<::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>>
Insert(
242 bool is_in_fast_recovery,
249 bool do_fast_retransmit
253 uint64 data_chunk_header_size,
255 ::std::function<
bool(
258 )> discard_from_send_queue
272 MCNAPI ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>
280 uint64 data_chunk_header_size,
282 ::std::function<
bool(
285 )> discard_from_send_queue
Definition LifecycleId.h:15
Definition MaxRetransmits.h:15
Definition OutstandingData.h:73
MCAPI Item(::webrtc::StrongAlias<::dcsctp::OutgoingMessageIdTag, uint > message_id, ::dcsctp::Data data, ::webrtc::Timestamp time_sent, ::dcsctp::MaxRetransmits max_retransmissions, ::webrtc::Timestamp expires_at, ::dcsctp::LifecycleId lifecycle_id)
MCAPI void MarkAsRetransmitted()
MCAPI void * $ctor(::webrtc::StrongAlias<::dcsctp::OutgoingMessageIdTag, uint > message_id, ::dcsctp::Data data, ::webrtc::Timestamp time_sent, ::dcsctp::MaxRetransmits max_retransmissions, ::webrtc::Timestamp expires_at, ::dcsctp::LifecycleId lifecycle_id)
MCAPI bool has_expired(::webrtc::Timestamp now) const
MCAPI::dcsctp::OutstandingData::Item::NackAction Nack(bool retransmit_now)
Definition OutstandingData.h:26
MCAPI::webrtc::TimeDelta MeasureRTT(::webrtc::Timestamp now, ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > tsn) const
MCAPI bool ShouldSendForwardTsn() const
MCAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint >, ::dcsctp::Data > > GetChunksToBeRetransmitted(uint64 max_size)
MCAPI::dcsctp::OutstandingData::Item const & GetItem(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > >) const
MCAPI void * $ctor(uint64 data_chunk_header_size, ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > last_cumulative_tsn_ack, ::std::function< bool(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort >, ::webrtc::StrongAlias<::dcsctp::OutgoingMessageIdTag, uint >)> discard_from_send_queue)
MCAPI::dcsctp::OutstandingData::Item & GetItem(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > tsn)
MCAPI::dcsctp::OutstandingData::AckInfo HandleSack(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack, ::rtc::ArrayView<::dcsctp::SackChunk::GapAckBlock const > gap_ack_blocks, bool is_in_fast_recovery)
MCAPI void ExpireOutstandingChunks(::webrtc::Timestamp now)
MCAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint >, ::dcsctp::Data > > GetChunksToBeFastRetransmitted(uint64 max_size)
MCAPI void AckGapBlocks(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack, ::rtc::ArrayView<::dcsctp::SackChunk::GapAckBlock const > gap_ack_blocks, ::dcsctp::OutstandingData::AckInfo &ack_info)
MCAPI::dcsctp::IForwardTsnChunk CreateIForwardTsn() const
MCAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint >, ::dcsctp::Data > > ExtractChunksThatCanFit(::std::set<::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > > &chunks, uint64 max_size)
MCAPI void NackBetweenAckBlocks(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack, ::rtc::ArrayView<::dcsctp::SackChunk::GapAckBlock const > gap_ack_blocks, bool is_in_fast_recovery, ::dcsctp::OutstandingData::AckInfo &ack_info)
MCAPI void BeginResetStreams()
MCAPI OutstandingData(uint64 data_chunk_header_size, ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > last_cumulative_tsn_ack, ::std::function< bool(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort >, ::webrtc::StrongAlias<::dcsctp::OutgoingMessageIdTag, uint >)> discard_from_send_queue)
MCAPI void AckChunk(::dcsctp::OutstandingData::AckInfo &ack_info, ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > tsn, ::dcsctp::OutstandingData::Item &item)
MCAPI ::std::optional<::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > > Insert(::webrtc::StrongAlias<::dcsctp::OutgoingMessageIdTag, uint > message_id, ::dcsctp::Data const &data, ::webrtc::Timestamp time_sent, ::dcsctp::MaxRetransmits max_retransmissions, ::webrtc::Timestamp expires_at, ::dcsctp::LifecycleId lifecycle_id)
MCAPI void AbandonAllFor(::dcsctp::OutstandingData::Item const &item)
MCAPI ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > highest_outstanding_tsn() const
MCAPI uint64 GetSerializedChunkSize(::dcsctp::Data const &data) const
MCAPI::dcsctp::ForwardTsnChunk CreateForwardTsn() const
MCAPI void ResetSequenceNumbers(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > last_cumulative_tsn)
MCAPI bool NackItem(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > tsn, bool retransmit_now, bool do_fast_retransmit)
MCAPI void RemoveAcked(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack, ::dcsctp::OutstandingData::AckInfo &ack_info)
Definition UnwrappedSequenceNumber.h:8
Definition _HeaderOutputPredefine.h:260
Definition StrongAlias.h:8
Definition Timestamp.h:10
Definition OutstandingData.h:43