LeviLamina
Loading...
Searching...
No Matches
RetransmissionQueue.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/dcsctp/OutstandingData.h"
7#include "mc/external/dcsctp/UnwrappedSequenceNumber.h"
8#include "mc/external/webrtc/StrongAlias.h"
9
10// auto generated forward declare list
11// clang-format off
12namespace dcsctp { class DcSctpSocketCallbacks; }
13namespace dcsctp { class HandoverReadinessStatus; }
14namespace dcsctp { class SackChunk; }
15namespace dcsctp { class SendQueue; }
16namespace dcsctp { class StreamIDTag; }
17namespace dcsctp { class TSNTag; }
18namespace dcsctp { class Timer; }
19namespace dcsctp { struct Data; }
20namespace dcsctp { struct DcSctpOptions; }
21namespace dcsctp { struct DcSctpSocketHandoverState; }
22namespace webrtc { class TimeDelta; }
23namespace webrtc { class Timestamp; }
24// clang-format on
25
26namespace dcsctp {
27
29public:
30 // RetransmissionQueue inner types define
31 enum class CongestionAlgorithmPhase : int {
32 KSlowStart = 0,
33 KCongestionAvoidance = 1,
34 };
35
36public:
37 // member variables
38 // NOLINTBEGIN
58 // NOLINTEND
59
60public:
61 // prevent constructor by default
65
66public:
67 // member functions
68 // NOLINTBEGIN
70
71 MCNAPI ::std::vector<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort>> BeginResetStreams();
72
73 MCNAPI void CommitResetStreams();
74
75 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
76 GetChunksForFastRetransmit(uint64 bytes_in_packet);
77
78 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
79 GetChunksToSend(::webrtc::Timestamp now, uint64 bytes_remaining_in_packet);
80
81 MCNAPI ::dcsctp::HandoverReadinessStatus GetHandoverReadiness() const;
82
83 MCNAPI uint64 GetSerializedChunkSize(::dcsctp::Data const& data) const;
84
85 MCNAPI void HandleIncreasedCumulativeTsnAck(uint64 unacked_bytes, uint64 total_bytes_acked);
86
87 MCNAPI void HandlePacketLoss(
89 );
90
91 MCNAPI bool HandleSack(::webrtc::Timestamp now, ::dcsctp::SackChunk const& sack);
92
94
95 MCNAPI bool HasStreamsReadyToBeReset() const;
96
97 MCNAPI bool IsSackValid(::dcsctp::SackChunk const& sack) const;
98
101 );
102
104
106
108 ::std::string_view log_prefix,
111 uint64 a_rwnd,
112 ::dcsctp::SendQueue& send_queue,
113 ::std::function<void(::webrtc::TimeDelta)> on_new_rtt,
114 ::std::function<void()> on_clear_retransmission_counter,
115 ::dcsctp::Timer& t3_rtx,
116 ::dcsctp::DcSctpOptions const& options,
117 bool supports_partial_reliability,
118 bool use_message_interleaving
119 );
120
121 MCNAPI void RollbackResetStreams();
122
124
126
127 MCNAPI void UpdateRTT(
130 );
131
132 MCNAPI void UpdateReceiverWindow(uint a_rwnd);
133
134 MCNAPI bool can_send_data() const;
135
136 MCNAPI uint64 max_bytes_to_send() const;
137
139 // NOLINTEND
140
141public:
142 // constructor thunks
143 // NOLINTBEGIN
144 MCNAPI void* $ctor(
145 ::std::string_view log_prefix,
148 uint64 a_rwnd,
149 ::dcsctp::SendQueue& send_queue,
150 ::std::function<void(::webrtc::TimeDelta)> on_new_rtt,
151 ::std::function<void()> on_clear_retransmission_counter,
152 ::dcsctp::Timer& t3_rtx,
153 ::dcsctp::DcSctpOptions const& options,
154 bool supports_partial_reliability,
155 bool use_message_interleaving
156 );
157 // NOLINTEND
158
159public:
160 // destructor thunk
161 // NOLINTBEGIN
162 MCNAPI void $dtor();
163 // NOLINTEND
164};
165
166} // namespace dcsctp
Definition Timer.h:5
Definition DcSctpSocketCallbacks.h:23
Definition RetransmissionQueue.h:28
MCAPI bool ShouldSendForwardTsn(::webrtc::Timestamp now)
MCAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint >, ::dcsctp::Data > > GetChunksForFastRetransmit(uint64 bytes_in_packet)
MCAPI RetransmissionQueue(::std::string_view log_prefix, ::dcsctp::DcSctpSocketCallbacks *callbacks, ::webrtc::StrongAlias<::dcsctp::TSNTag, uint > my_initial_tsn, uint64 a_rwnd, ::dcsctp::SendQueue &send_queue, ::std::function< void(::webrtc::TimeDelta)> on_new_rtt, ::std::function< void()> on_clear_retransmission_counter, ::dcsctp::Timer &t3_rtx, ::dcsctp::DcSctpOptions const &options, bool supports_partial_reliability, bool use_message_interleaving)
MCAPI void HandleT3RtxTimerExpiry()
MCAPI void AddHandoverState(::dcsctp::DcSctpSocketHandoverState &state)
MCAPI void RollbackResetStreams()
MCAPI void PrepareResetStream(::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > stream_id)
MCAPI::dcsctp::HandoverReadinessStatus GetHandoverReadiness() const
MCAPI bool HasStreamsReadyToBeReset() const
MCAPI uint64 GetSerializedChunkSize(::dcsctp::Data const &data) const
MCAPI void UpdateReceiverWindow(uint a_rwnd)
MCAPI ::std::vector<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > > BeginResetStreams()
MCAPI void MaybeExitFastRecovery(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack)
MCAPI void * $ctor(::std::string_view log_prefix, ::dcsctp::DcSctpSocketCallbacks *callbacks, ::webrtc::StrongAlias<::dcsctp::TSNTag, uint > my_initial_tsn, uint64 a_rwnd, ::dcsctp::SendQueue &send_queue, ::std::function< void(::webrtc::TimeDelta)> on_new_rtt, ::std::function< void()> on_clear_retransmission_counter, ::dcsctp::Timer &t3_rtx, ::dcsctp::DcSctpOptions const &options, bool supports_partial_reliability, bool use_message_interleaving)
MCAPI uint64 max_bytes_to_send() const
MCAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint >, ::dcsctp::Data > > GetChunksToSend(::webrtc::Timestamp now, uint64 bytes_remaining_in_packet)
MCAPI bool can_send_data() const
MCAPI bool HandleSack(::webrtc::Timestamp now, ::dcsctp::SackChunk const &sack)
MCAPI void UpdateRTT(::webrtc::Timestamp now, ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack)
MCAPI void HandleIncreasedCumulativeTsnAck(uint64 unacked_bytes, uint64 total_bytes_acked)
MCAPI void StartT3RtxTimerIfOutstandingData()
MCAPI void RestoreFromState(::dcsctp::DcSctpSocketHandoverState const &state)
MCAPI bool IsSackValid(::dcsctp::SackChunk const &sack) const
MCAPI void HandlePacketLoss(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > highest_tsn_acked)
Definition SackChunk.h:18
Definition SendQueue.h:18
Definition Timer.h:19
Definition UnwrappedSequenceNumber.h:8
Definition StrongAlias.h:8
Definition TimeDelta.h:10
Definition Timestamp.h:10
Definition Data.h:22
Definition DcSctpOptions.h:7
Definition DcSctpSocketHandoverState.h:7
Definition Alias.h:14