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/webrtc/StrongAlias.h"
8
9// auto generated forward declare list
10// clang-format off
11namespace dcsctp { class DcSctpSocketCallbacks; }
12namespace dcsctp { class HandoverReadinessStatus; }
13namespace dcsctp { class SackChunk; }
14namespace dcsctp { class SendQueue; }
15namespace dcsctp { class StreamIDTag; }
16namespace dcsctp { class TSNTag; }
17namespace dcsctp { class Timer; }
18namespace dcsctp { struct Data; }
19namespace dcsctp { struct DcSctpOptions; }
20namespace dcsctp { struct DcSctpSocketHandoverState; }
21namespace webrtc { class TimeDelta; }
22namespace webrtc { class Timestamp; }
23// clang-format on
24
25namespace dcsctp {
26
27class RetransmissionQueue {
28public:
29 // RetransmissionQueue inner types define
30 enum class CongestionAlgorithmPhase : int {
31 KSlowStart = 0,
32 KCongestionAvoidance = 1,
33 };
34
35public:
36 // member variables
37 // NOLINTBEGIN
56 // NOLINTEND
57
58public:
59 // prevent constructor by default
60 RetransmissionQueue& operator=(RetransmissionQueue const&);
61 RetransmissionQueue(RetransmissionQueue const&);
62 RetransmissionQueue();
63
64public:
65 // member functions
66 // NOLINTBEGIN
68
69 MCNAPI ::std::vector<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort>> BeginResetStreams();
70
71 MCNAPI void CommitResetStreams();
72
73 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
74 GetChunksForFastRetransmit(uint64 bytes_in_packet);
75
76 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
77 GetChunksToSend(::webrtc::Timestamp now, uint64 bytes_remaining_in_packet);
78
79 MCNAPI ::dcsctp::HandoverReadinessStatus GetHandoverReadiness() const;
80
81 MCNAPI bool HandleSack(::webrtc::Timestamp now, ::dcsctp::SackChunk const& sack);
82
84
85 MCNAPI bool HasStreamsReadyToBeReset() const;
86
88
90
92 ::std::string_view log_prefix,
95 uint64 a_rwnd,
96 ::dcsctp::SendQueue& send_queue,
97 ::std::function<void(::webrtc::TimeDelta)> on_new_rtt,
98 ::std::function<void()> on_clear_retransmission_counter,
99 ::dcsctp::Timer& t3_rtx,
100 ::dcsctp::DcSctpOptions const& options,
101 bool supports_partial_reliability,
102 bool use_message_interleaving
103 );
104
105 MCNAPI void RollbackResetStreams();
106
108
110 // NOLINTEND
111
112public:
113 // constructor thunks
114 // NOLINTBEGIN
115 MCNAPI void* $ctor(
116 ::std::string_view log_prefix,
119 uint64 a_rwnd,
120 ::dcsctp::SendQueue& send_queue,
121 ::std::function<void(::webrtc::TimeDelta)> on_new_rtt,
122 ::std::function<void()> on_clear_retransmission_counter,
123 ::dcsctp::Timer& t3_rtx,
124 ::dcsctp::DcSctpOptions const& options,
125 bool supports_partial_reliability,
126 bool use_message_interleaving
127 );
128 // NOLINTEND
129
130public:
131 // destructor thunk
132 // NOLINTBEGIN
133 MCNAPI void $dtor();
134 // NOLINTEND
135};
136
137} // namespace dcsctp
Definition DcSctpSocketCallbacks.h:24
Definition HandoverReadinessStatus.h:15
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 ::std::vector<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort > > BeginResetStreams()
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 ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint >, ::dcsctp::Data > > GetChunksToSend(::webrtc::Timestamp now, uint64 bytes_remaining_in_packet)
MCAPI bool HandleSack(::webrtc::Timestamp now, ::dcsctp::SackChunk const &sack)
MCAPI void RestoreFromState(::dcsctp::DcSctpSocketHandoverState const &state)
Definition SackChunk.h:19
Definition SendQueue.h:18
Definition StreamIDTag.h:7
Definition TSNTag.h:7
Definition Timer.h:19
Definition StrongAlias.h:8
Definition TimeDelta.h:10
Definition Timestamp.h:15
Definition Data.h:22
Definition DcSctpOptions.h:7
Definition DcSctpSocketHandoverState.h:7
Definition Alias.h:14