#include "net/dcsctp/tx/rr_send_queue.h"
#include <cstdint>
#include <deque>
#include <limits>
#include <map>
#include <set>
#include <utility>
#include <vector>
#include "absl/algorithm/container.h"
#include "absl/types/optional.h"
#include "api/array_view.h"
#include "net/dcsctp/common/internal_types.h"
#include "net/dcsctp/packet/data.h"
#include "net/dcsctp/public/dcsctp_message.h"
#include "net/dcsctp/public/dcsctp_socket.h"
#include "net/dcsctp/public/types.h"
#include "net/dcsctp/tx/send_queue.h"
#include "rtc_base/logging.h"
#include "rtc_base/strings/str_join.h"
namespace dcsctp {
TimeDelta;
Timestamp;
RRSendQueue::RRSendQueue(absl::string_view log_prefix,
DcSctpSocketCallbacks* callbacks,
size_t mtu,
StreamPriority default_priority,
size_t total_buffered_amount_low_threshold)
: … { … }
size_t RRSendQueue::OutgoingStream::bytes_to_send_in_next_message() const { … }
void RRSendQueue::OutgoingStream::AddHandoverState(
DcSctpSocketHandoverState::OutgoingStream& state) const { … }
bool RRSendQueue::IsConsistent() const { … }
bool RRSendQueue::OutgoingStream::IsConsistent() const { … }
void RRSendQueue::ThresholdWatcher::Decrease(size_t bytes) { … }
void RRSendQueue::ThresholdWatcher::SetLowThreshold(size_t low_threshold) { … }
void RRSendQueue::OutgoingStream::Add(DcSctpMessage message,
MessageAttributes attributes) { … }
absl::optional<SendQueue::DataToSend> RRSendQueue::OutgoingStream::Produce(
Timestamp now,
size_t max_size) { … }
void RRSendQueue::OutgoingStream::HandleMessageExpired(
OutgoingStream::Item& item) { … }
bool RRSendQueue::OutgoingStream::Discard(OutgoingMessageId message_id) { … }
void RRSendQueue::OutgoingStream::Pause() { … }
void RRSendQueue::OutgoingStream::Resume() { … }
void RRSendQueue::OutgoingStream::Reset() { … }
bool RRSendQueue::OutgoingStream::has_partially_sent_message() const { … }
void RRSendQueue::Add(Timestamp now,
DcSctpMessage message,
const SendOptions& send_options) { … }
bool RRSendQueue::IsEmpty() const { … }
absl::optional<SendQueue::DataToSend> RRSendQueue::Produce(Timestamp now,
size_t max_size) { … }
bool RRSendQueue::Discard(StreamID stream_id, OutgoingMessageId message_id) { … }
void RRSendQueue::PrepareResetStream(StreamID stream_id) { … }
bool RRSendQueue::HasStreamsReadyToBeReset() const { … }
std::vector<StreamID> RRSendQueue::GetStreamsReadyToBeReset() { … }
void RRSendQueue::CommitResetStreams() { … }
void RRSendQueue::RollbackResetStreams() { … }
void RRSendQueue::Reset() { … }
size_t RRSendQueue::buffered_amount(StreamID stream_id) const { … }
size_t RRSendQueue::buffered_amount_low_threshold(StreamID stream_id) const { … }
void RRSendQueue::SetBufferedAmountLowThreshold(StreamID stream_id,
size_t bytes) { … }
RRSendQueue::OutgoingStream& RRSendQueue::GetOrCreateStreamInfo(
StreamID stream_id) { … }
void RRSendQueue::SetStreamPriority(StreamID stream_id,
StreamPriority priority) { … }
StreamPriority RRSendQueue::GetStreamPriority(StreamID stream_id) const { … }
HandoverReadinessStatus RRSendQueue::GetHandoverReadiness() const { … }
void RRSendQueue::AddHandoverState(DcSctpSocketHandoverState& state) { … }
void RRSendQueue::RestoreFromState(const DcSctpSocketHandoverState& state) { … }
}