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/ArrayView.h"
9#include "mc/external/webrtc/StrongAlias.h"
10
11// auto generated forward declare list
12// clang-format off
13namespace dcsctp { class ForwardTsnChunk; }
14namespace dcsctp { class IForwardTsnChunk; }
15namespace dcsctp { class LifecycleId; }
16namespace dcsctp { class MaxRetransmits; }
17namespace dcsctp { class OutgoingMessageIdTag; }
18namespace dcsctp { class StreamIDTag; }
19namespace dcsctp { class TSNTag; }
20namespace dcsctp { struct Data; }
21namespace webrtc { class TimeDelta; }
22namespace webrtc { class Timestamp; }
23// clang-format on
24
25namespace dcsctp {
26
27class OutstandingData {
28public:
29 // OutstandingData inner types declare
30 // clang-format off
31 struct AckInfo;
32 class Item;
33 // clang-format on
34
35 // OutstandingData inner types define
36 enum class State : int {
37 KInFlight = 0,
38 KNacked = 1,
39 KToBeRetransmitted = 2,
40 KAcked = 3,
41 KAbandoned = 4,
42 };
43
44 struct AckInfo {
45 public:
46 // member variables
47 // NOLINTBEGIN
53 // NOLINTEND
54
55 public:
56 // prevent constructor by default
57 AckInfo& operator=(AckInfo const&);
58 AckInfo(AckInfo const&);
59 AckInfo();
60
61 public:
62 // member functions
63 // NOLINTBEGIN
64 MCNAPI ~AckInfo();
65 // NOLINTEND
66
67 public:
68 // destructor thunk
69 // NOLINTBEGIN
70 MCNAPI void $dtor();
71 // NOLINTEND
72 };
73
74 class Item {
75 public:
76 // Item inner types define
77 enum class AckState : uchar {
78 KUnacked = 0,
79 KAcked = 1,
80 KNacked = 2,
81 };
82
83 enum class Lifecycle : uchar {
84 KActive = 0,
85 KToBeRetransmitted = 1,
86 KAbandoned = 2,
87 };
88
89 enum class NackAction : int {
90 KNothing = 0,
91 KRetransmit = 1,
92 KAbandon = 2,
93 };
94
95 public:
96 // member variables
97 // NOLINTBEGIN
108 // NOLINTEND
109
110 public:
111 // prevent constructor by default
112 Item& operator=(Item const&);
113 Item(Item const&);
114 Item();
115
116 public:
117 // member functions
118 // NOLINTBEGIN
119 MCNAPI Item(
121 ::dcsctp::Data data,
122 ::webrtc::Timestamp time_sent,
123 ::dcsctp::MaxRetransmits max_retransmissions,
124 ::webrtc::Timestamp expires_at,
125 ::dcsctp::LifecycleId lifecycle_id
126 );
127 // NOLINTEND
128
129 public:
130 // constructor thunks
131 // NOLINTBEGIN
132 MCNAPI void* $ctor(
134 ::dcsctp::Data data,
135 ::webrtc::Timestamp time_sent,
136 ::dcsctp::MaxRetransmits max_retransmissions,
137 ::webrtc::Timestamp expires_at,
138 ::dcsctp::LifecycleId lifecycle_id
139 );
140 // NOLINTEND
141 };
142
143public:
144 // member variables
145 // NOLINTBEGIN
156 // NOLINTEND
157
158public:
159 // prevent constructor by default
160 OutstandingData& operator=(OutstandingData const&);
161 OutstandingData(OutstandingData const&);
162 OutstandingData();
163
164public:
165 // member functions
166 // NOLINTBEGIN
168
169 MCNAPI void AckChunk(
173 );
174
175 MCNAPI void BeginResetStreams();
176
177 MCNAPI ::dcsctp::ForwardTsnChunk CreateForwardTsn() const;
178
179 MCNAPI ::dcsctp::IForwardTsnChunk CreateIForwardTsn() const;
180
182
183 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
186 uint64 max_size
187 );
188
189 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
191
192 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
194
195 MCNAPI ::dcsctp::OutstandingData::AckInfo HandleSack(
198 bool is_in_fast_recovery
199 );
200
201 MCNAPI ::std::optional<::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>> Insert(
203 ::dcsctp::Data const& data,
204 ::webrtc::Timestamp time_sent,
205 ::dcsctp::MaxRetransmits max_retransmissions,
206 ::webrtc::Timestamp expires_at,
207 ::dcsctp::LifecycleId lifecycle_id
208 );
209
210 MCNAPI ::webrtc::TimeDelta MeasureRTT(
213 ) const;
214
215 MCNAPI void NackAll();
216
217 MCNAPI bool NackItem(
219 bool retransmit_now,
220 bool do_fast_retransmit
221 );
222
224 uint64 data_chunk_header_size,
226 ::std::function<bool(
229 )> discard_from_send_queue
230 );
231
232 MCNAPI void RemoveAcked(
235 );
236
239 );
240
241 MCNAPI bool ShouldSendForwardTsn() const;
242
243 MCNAPI ::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>>
245
247 // NOLINTEND
248
249public:
250 // constructor thunks
251 // NOLINTBEGIN
252 MCNAPI void* $ctor(
253 uint64 data_chunk_header_size,
255 ::std::function<bool(
258 )> discard_from_send_queue
259 );
260 // NOLINTEND
261
262public:
263 // destructor thunk
264 // NOLINTBEGIN
265 MCNAPI void $dtor();
266 // NOLINTEND
267};
268
269} // namespace dcsctp
Definition ForwardTsnChunk.h:18
Definition IForwardTsnChunk.h:18
Definition LifecycleId.h:15
Definition MaxRetransmits.h:15
Definition OutgoingMessageIdTag.h:7
Definition OutstandingData.h:74
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 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::dcsctp::OutstandingData::AckInfo HandleSack(::dcsctp::UnwrappedSequenceNumber<::webrtc::StrongAlias<::dcsctp::TSNTag, uint > > cumulative_tsn_ack, ::webrtc::ArrayView<::dcsctp::SackChunk::GapAckBlock const > gap_ack_blocks, bool is_in_fast_recovery)
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 ArrayView.h:8
Definition StrongAlias.h:8
Definition TimeDelta.h:10
Definition Timestamp.h:15
Definition Data.h:22
Definition OutstandingData.h:44
Definition Alias.h:14