#include "net/dcsctp/rx/interleaved_reassembly_streams.h"
#include <stddef.h>
#include <cstdint>
#include <functional>
#include <iterator>
#include <map>
#include <numeric>
#include <unordered_map>
#include <utility>
#include <vector>
#include "absl/algorithm/container.h"
#include "api/array_view.h"
#include "net/dcsctp/common/sequence_numbers.h"
#include "net/dcsctp/packet/chunk/forward_tsn_common.h"
#include "net/dcsctp/packet/data.h"
#include "net/dcsctp/public/types.h"
#include "rtc_base/logging.h"
namespace dcsctp {
InterleavedReassemblyStreams::InterleavedReassemblyStreams(
absl::string_view log_prefix,
OnAssembledMessage on_assembled_message)
: … { … }
size_t InterleavedReassemblyStreams::Stream::TryToAssembleMessage(
UnwrappedMID mid) { … }
size_t InterleavedReassemblyStreams::Stream::AssembleMessage(
const ChunkMap& tsn_chunks) { … }
size_t InterleavedReassemblyStreams::Stream::EraseTo(MID mid) { … }
int InterleavedReassemblyStreams::Stream::Add(UnwrappedTSN tsn, Data data) { … }
size_t InterleavedReassemblyStreams::Stream::TryToAssembleMessages() { … }
void InterleavedReassemblyStreams::Stream::AddHandoverState(
DcSctpSocketHandoverState& state) const { … }
InterleavedReassemblyStreams::Stream&
InterleavedReassemblyStreams::GetOrCreateStream(const FullStreamId& stream_id) { … }
int InterleavedReassemblyStreams::Add(UnwrappedTSN tsn, Data data) { … }
size_t InterleavedReassemblyStreams::HandleForwardTsn(
UnwrappedTSN new_cumulative_ack_tsn,
rtc::ArrayView<const AnyForwardTsnChunk::SkippedStream> skipped_streams) { … }
void InterleavedReassemblyStreams::ResetStreams(
rtc::ArrayView<const StreamID> stream_ids) { … }
HandoverReadinessStatus InterleavedReassemblyStreams::GetHandoverReadiness()
const { … }
void InterleavedReassemblyStreams::AddHandoverState(
DcSctpSocketHandoverState& state) { … }
void InterleavedReassemblyStreams::RestoreFromState(
const DcSctpSocketHandoverState& state) { … }
}