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
57 // NOLINTEND
58
59public:
60 // prevent constructor by default
61 RetransmissionQueue& operator=(RetransmissionQueue const&);
62 RetransmissionQueue(RetransmissionQueue const&);
63 RetransmissionQueue();
64
65public:
66 // member functions
67 // NOLINTBEGIN
69
70 MCNAPI ::std::vector<::webrtc::StrongAlias<::dcsctp::StreamIDTag, ushort>> BeginResetStreams();
71
72 MCNAPI void CommitResetStreams();
73
74 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
75 GetChunksForFastRetransmit(uint64 bytes_in_packet);
76
77 MCNAPI ::std::vector<::std::pair<::webrtc::StrongAlias<::dcsctp::TSNTag, uint>, ::dcsctp::Data>>
78 GetChunksToSend(::webrtc::Timestamp now, uint64 bytes_remaining_in_packet);
79
80 MCNAPI ::dcsctp::HandoverReadinessStatus GetHandoverReadiness() const;
81
82 MCNAPI bool HandleSack(::webrtc::Timestamp now, ::dcsctp::SackChunk const& sack);
83
85
86 MCNAPI bool HasStreamsReadyToBeReset() const;
87
89
91
93 ::std::string_view log_prefix,
96 uint64 a_rwnd,
97 ::dcsctp::SendQueue& send_queue,
98 ::std::function<void(::webrtc::TimeDelta)> on_new_rtt,
99 ::std::function<void()> on_clear_retransmission_counter,
100 ::dcsctp::Timer& t3_rtx,
101 ::dcsctp::DcSctpOptions const& options,
102 bool supports_partial_reliability,
103 bool use_message_interleaving
104 );
105
106 MCNAPI void RollbackResetStreams();
107
109
110 MCNAPI bool can_send_data() const;
111
113 // NOLINTEND
114
115public:
116 // constructor thunks
117 // NOLINTBEGIN
118 MCNAPI void* $ctor(
119 ::std::string_view log_prefix,
122 uint64 a_rwnd,
123 ::dcsctp::SendQueue& send_queue,
124 ::std::function<void(::webrtc::TimeDelta)> on_new_rtt,
125 ::std::function<void()> on_clear_retransmission_counter,
126 ::dcsctp::Timer& t3_rtx,
127 ::dcsctp::DcSctpOptions const& options,
128 bool supports_partial_reliability,
129 bool use_message_interleaving
130 );
131 // NOLINTEND
132
133public:
134 // destructor thunk
135 // NOLINTBEGIN
136 MCNAPI void $dtor();
137 // NOLINTEND
138};
139
140} // namespace dcsctp
Definition DcSctpSocketCallbacks.h:23
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 can_send_data() const
MCAPI bool HandleSack(::webrtc::Timestamp now, ::dcsctp::SackChunk const &sack)
MCAPI void RestoreFromState(::dcsctp::DcSctpSocketHandoverState const &state)
Definition SackChunk.h:18
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