LeviLamina
Loading...
Searching...
No Matches
OutstandingData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/external/dcsctp/SackChunk.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 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; }
22// clang-format on
23
24namespace dcsctp {
25
27public:
28 // OutstandingData inner types declare
29 // clang-format off
30 struct AckInfo;
31 class Item;
32 // clang-format on
33
34 // OutstandingData inner types define
35 enum class State : int {
36 KInFlight = 0,
37 KNacked = 1,
38 KToBeRetransmitted = 2,
39 KAcked = 3,
40 KAbandoned = 4,
41 };
42
43 struct AckInfo {
44 public:
45 // member variables
46 // NOLINTBEGIN
52 // NOLINTEND
53
54 public:
55 // prevent constructor by default
56 AckInfo& operator=(AckInfo const&);
57 AckInfo(AckInfo const&);
58 AckInfo();
59
60 public:
61 // member functions
62 // NOLINTBEGIN
63 MCNAPI ~AckInfo();
64 // NOLINTEND
65
66 public:
67 // destructor thunk
68 // NOLINTBEGIN
69 MCNAPI void $dtor();
70 // NOLINTEND
71 };
72
73 class Item {
74 public:
75 // Item inner types define
76 enum class NackAction : int {
77 KNothing = 0,
78 KRetransmit = 1,
79 KAbandon = 2,
80 };
81
82 enum class Lifecycle : uchar {
83 KActive = 0,
84 KToBeRetransmitted = 1,
85 KAbandoned = 2,
86 };
87
88 enum class AckState : uchar {
89 KUnacked = 0,
90 KAcked = 1,
91 KNacked = 2,
92 };
93
94 public:
95 // member variables
96 // NOLINTBEGIN
107 // NOLINTEND
108
109 public:
110 // prevent constructor by default
111 Item& operator=(Item const&);
112 Item(Item const&);
113 Item();
114
115 public:
116 // member functions
117 // NOLINTBEGIN
118 MCNAPI void Abandon();
119
120 MCNAPI void Ack();
121
122 MCNAPI Item(
124 ::dcsctp::Data data,
125 ::webrtc::Timestamp time_sent,
126 ::dcsctp::MaxRetransmits max_retransmissions,
127 ::webrtc::Timestamp expires_at,
128 ::dcsctp::LifecycleId lifecycle_id
129 );
130
131 MCNAPI void MarkAsRetransmitted();
132
133 MCNAPI ::dcsctp::OutstandingData::Item::NackAction Nack(bool retransmit_now);
134
135 MCNAPI bool has_expired(::webrtc::Timestamp now) const;
136 // NOLINTEND
137
138 public:
139 // constructor thunks
140 // NOLINTBEGIN
141 MCNAPI void* $ctor(
143 ::dcsctp::Data data,
144 ::webrtc::Timestamp time_sent,
145 ::dcsctp::MaxRetransmits max_retransmissions,
146 ::webrtc::Timestamp expires_at,
147 ::dcsctp::LifecycleId lifecycle_id
148 );
149 // NOLINTEND
150 };
151
152public:
153 // member variables
154 // NOLINTBEGIN
164 // NOLINTEND
165
166public:
167 // prevent constructor by default
168 OutstandingData& operator=(OutstandingData const&);
171
172public:
173 // member functions
174 // NOLINTBEGIN
176
177 MCNAPI void AckChunk(
181 );
182
183 MCNAPI void AckGapBlocks(
187 );
188
189 MCNAPI void BeginResetStreams();
190
191 MCNAPI ::dcsctp::ForwardTsnChunk CreateForwardTsn() const;
192
193 MCNAPI ::dcsctp::IForwardTsnChunk CreateIForwardTsn() const;
194
196
197 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
200 uint64 max_size
201 );
202
203 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
205
206 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
208
209 MCNAPI ::dcsctp::OutstandingData::Item const&
211
212 MCNAPI ::dcsctp::OutstandingData::Item&
214
215 MCNAPI uint64 GetSerializedChunkSize(::dcsctp::Data const& data) const;
216
217 MCNAPI ::dcsctp::OutstandingData::AckInfo HandleSack(
220 bool is_in_fast_recovery
221 );
222
223 MCNAPI ::std::optional<::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>> Insert(
225 ::dcsctp::Data const& data,
226 ::webrtc::Timestamp time_sent,
227 ::dcsctp::MaxRetransmits max_retransmissions,
228 ::webrtc::Timestamp expires_at,
229 ::dcsctp::LifecycleId lifecycle_id
230 );
231
232 MCNAPI ::webrtc::TimeDelta MeasureRTT(
235 ) const;
236
237 MCNAPI void NackAll();
238
242 bool is_in_fast_recovery,
244 );
245
246 MCNAPI bool NackItem(
248 bool retransmit_now,
249 bool do_fast_retransmit
250 );
251
253 uint64 data_chunk_header_size,
255 ::std::function<bool(
258 )> discard_from_send_queue
259 );
260
261 MCNAPI void RemoveAcked(
264 );
265
268 );
269
270 MCNAPI bool ShouldSendForwardTsn() const;
271
272 MCNAPI ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>
274 // NOLINTEND
275
276public:
277 // constructor thunks
278 // NOLINTBEGIN
279 MCNAPI void* $ctor(
280 uint64 data_chunk_header_size,
282 ::std::function<bool(
285 )> discard_from_send_queue
286 );
287 // NOLINTEND
288};
289
290} // namespace dcsctp
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 * $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 Data.h:22
Definition OutstandingData.h:43
Definition Alias.h:14