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
26class OutstandingData {
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 AckState : uchar {
77 KUnacked = 0,
78 KAcked = 1,
79 KNacked = 2,
80 };
81
82 enum class Lifecycle : uchar {
83 KActive = 0,
84 KToBeRetransmitted = 1,
85 KAbandoned = 2,
86 };
87
88 enum class NackAction : int {
89 KNothing = 0,
90 KRetransmit = 1,
91 KAbandon = 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 Item(
120 ::dcsctp::Data data,
121 ::webrtc::Timestamp time_sent,
122 ::dcsctp::MaxRetransmits max_retransmissions,
123 ::webrtc::Timestamp expires_at,
124 ::dcsctp::LifecycleId lifecycle_id
125 );
126 // NOLINTEND
127
128 public:
129 // constructor thunks
130 // NOLINTBEGIN
131 MCNAPI void* $ctor(
133 ::dcsctp::Data data,
134 ::webrtc::Timestamp time_sent,
135 ::dcsctp::MaxRetransmits max_retransmissions,
136 ::webrtc::Timestamp expires_at,
137 ::dcsctp::LifecycleId lifecycle_id
138 );
139 // NOLINTEND
140 };
141
142public:
143 // member variables
144 // NOLINTBEGIN
154 // NOLINTEND
155
156public:
157 // prevent constructor by default
158 OutstandingData& operator=(OutstandingData const&);
159 OutstandingData(OutstandingData const&);
160 OutstandingData();
161
162public:
163 // member functions
164 // NOLINTBEGIN
166
167 MCNAPI void AckChunk(
171 );
172
173 MCNAPI void BeginResetStreams();
174
175 MCNAPI ::dcsctp::ForwardTsnChunk CreateForwardTsn() const;
176
177 MCNAPI ::dcsctp::IForwardTsnChunk CreateIForwardTsn() const;
178
180
181 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
184 uint64 max_size
185 );
186
187 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
189
190 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
192
193 MCNAPI ::dcsctp::OutstandingData::AckInfo HandleSack(
196 bool is_in_fast_recovery
197 );
198
199 MCNAPI ::std::optional<::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>> Insert(
201 ::dcsctp::Data const& data,
202 ::webrtc::Timestamp time_sent,
203 ::dcsctp::MaxRetransmits max_retransmissions,
204 ::webrtc::Timestamp expires_at,
205 ::dcsctp::LifecycleId lifecycle_id
206 );
207
208 MCNAPI ::webrtc::TimeDelta MeasureRTT(
211 ) const;
212
213 MCNAPI void NackAll();
214
215 MCNAPI bool NackItem(
217 bool retransmit_now,
218 bool do_fast_retransmit
219 );
220
222 uint64 data_chunk_header_size,
224 ::std::function<bool(
227 )> discard_from_send_queue
228 );
229
230 MCNAPI void RemoveAcked(
233 );
234
237 );
238
239 MCNAPI bool ShouldSendForwardTsn() const;
240
241 MCNAPI ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>
243
245 // NOLINTEND
246
247public:
248 // constructor thunks
249 // NOLINTBEGIN
250 MCNAPI void* $ctor(
251 uint64 data_chunk_header_size,
253 ::std::function<bool(
256 )> discard_from_send_queue
257 );
258 // NOLINTEND
259
260public:
261 // destructor thunk
262 // NOLINTBEGIN
263 MCNAPI void $dtor();
264 // NOLINTEND
265};
266
267} // namespace dcsctp
Definition ForwardTsnChunk.h:17
Definition IForwardTsnChunk.h:17
Definition LifecycleId.h:15
Definition MaxRetransmits.h:15
Definition OutgoingMessageIdTag.h:7
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::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 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::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::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 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::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 StreamIDTag.h:7
Definition TSNTag.h:7
Definition UnwrappedSequenceNumber.h:8
Definition _HeaderOutputPredefine.h:310
Definition StrongAlias.h:8
Definition TimeDelta.h:10
Definition Timestamp.h:15
Definition Data.h:22
Definition OutstandingData.h:43
Definition Alias.h:14