mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-07-30 14:43:05 +03:00
Revert D56496459: Use CircularDeque in streams and datagram state.
Differential Revision: D56496459 Original commit changeset: ec4049614939 Original Phabricator Diff: D56496459 fbshipit-source-id: 5b1ee6dcfe59ae2e62a6d818f5839d95d26d4431
This commit is contained in:
committed by
Facebook GitHub Bot
parent
1603c88b3c
commit
3570f0122f
@ -757,7 +757,7 @@ class QuicSocket {
|
|||||||
* };
|
* };
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using PeekIterator = CircularDeque<StreamBuffer>::const_iterator;
|
using PeekIterator = std::deque<StreamBuffer>::const_iterator;
|
||||||
class PeekCallback {
|
class PeekCallback {
|
||||||
public:
|
public:
|
||||||
virtual ~PeekCallback() = default;
|
virtual ~PeekCallback() = default;
|
||||||
|
@ -457,7 +457,7 @@ void handleRetransmissionWritten(
|
|||||||
uint64_t frameOffset,
|
uint64_t frameOffset,
|
||||||
uint64_t frameLen,
|
uint64_t frameLen,
|
||||||
bool frameFin,
|
bool frameFin,
|
||||||
CircularDeque<StreamBuffer>::iterator lossBufferIter) {
|
std::deque<StreamBuffer>::iterator lossBufferIter) {
|
||||||
auto bufferLen = lossBufferIter->data.chainLength();
|
auto bufferLen = lossBufferIter->data.chainLength();
|
||||||
Buf bufWritten;
|
Buf bufWritten;
|
||||||
if (frameLen == bufferLen && frameFin == lossBufferIter->eof) {
|
if (frameLen == bufferLen && frameFin == lossBufferIter->eof) {
|
||||||
|
@ -171,7 +171,7 @@ void handleRetransmissionWritten(
|
|||||||
uint64_t frameOffset,
|
uint64_t frameOffset,
|
||||||
uint64_t frameLen,
|
uint64_t frameLen,
|
||||||
bool frameFin,
|
bool frameFin,
|
||||||
CircularDeque<StreamBuffer>::iterator lossBufferIter);
|
std::deque<StreamBuffer>::iterator lossBufferIter);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the connection and stream state after stream data is written and deal
|
* Update the connection and stream state after stream data is written and deal
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <quic/common/CircularDeque.h>
|
|
||||||
#include <quic/fizz/handshake/FizzCryptoFactory.h>
|
#include <quic/fizz/handshake/FizzCryptoFactory.h>
|
||||||
#include <quic/server/handshake/ServerHandshake.h>
|
#include <quic/server/handshake/ServerHandshake.h>
|
||||||
|
|
||||||
@ -49,7 +48,7 @@ class FizzServerHandshake : public ServerHandshake {
|
|||||||
void writeNewSessionTicketToCrypto(const AppToken& appToken) override;
|
void writeNewSessionTicketToCrypto(const AppToken& appToken) override;
|
||||||
|
|
||||||
using PendingEvent = fizz::WriteNewSessionTicket;
|
using PendingEvent = fizz::WriteNewSessionTicket;
|
||||||
CircularDeque<PendingEvent> pendingEvents_;
|
std::deque<PendingEvent> pendingEvents_;
|
||||||
|
|
||||||
std::unique_ptr<FizzCryptoFactory> cryptoFactory_;
|
std::unique_ptr<FizzCryptoFactory> cryptoFactory_;
|
||||||
|
|
||||||
|
@ -151,8 +151,8 @@ void appendDataToReadBufferCommon(
|
|||||||
// Start overlap will point to the first buffer that overlaps with the
|
// Start overlap will point to the first buffer that overlaps with the
|
||||||
// current buffer and End overlap will point to the last buffer that overlaps.
|
// current buffer and End overlap will point to the last buffer that overlaps.
|
||||||
// They must always be set together.
|
// They must always be set together.
|
||||||
folly::Optional<decltype(stream.readBuffer)::iterator> startOverlap;
|
folly::Optional<std::deque<StreamBuffer>::iterator> startOverlap;
|
||||||
folly::Optional<decltype(stream.readBuffer)::iterator> endOverlap;
|
folly::Optional<std::deque<StreamBuffer>::iterator> endOverlap;
|
||||||
|
|
||||||
StreamBuffer* current = &buffer;
|
StreamBuffer* current = &buffer;
|
||||||
bool currentAlreadyInserted = false;
|
bool currentAlreadyInserted = false;
|
||||||
|
@ -73,7 +73,7 @@ Buf readDataFromCryptoStream(QuicCryptoStream& stream, uint64_t amount = 0);
|
|||||||
* Invokes provided callback on the existing data.
|
* Invokes provided callback on the existing data.
|
||||||
* Does not affect stream state (as opposed to read).
|
* Does not affect stream state (as opposed to read).
|
||||||
*/
|
*/
|
||||||
using PeekIterator = CircularDeque<StreamBuffer>::const_iterator;
|
using PeekIterator = std::deque<StreamBuffer>::const_iterator;
|
||||||
void peekDataFromQuicStream(
|
void peekDataFromQuicStream(
|
||||||
QuicStreamState& state,
|
QuicStreamState& state,
|
||||||
const folly::Function<void(StreamId id, const folly::Range<PeekIterator>&)
|
const folly::Function<void(StreamId id, const folly::Range<PeekIterator>&)
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
#include <quic/codec/QuicWriteCodec.h>
|
#include <quic/codec/QuicWriteCodec.h>
|
||||||
#include <quic/codec/Types.h>
|
#include <quic/codec/Types.h>
|
||||||
#include <quic/common/BufAccessor.h>
|
#include <quic/common/BufAccessor.h>
|
||||||
#include <quic/common/CircularDeque.h>
|
|
||||||
#include <quic/congestion_control/CongestionController.h>
|
#include <quic/congestion_control/CongestionController.h>
|
||||||
#include <quic/congestion_control/PacketProcessor.h>
|
#include <quic/congestion_control/PacketProcessor.h>
|
||||||
#include <quic/congestion_control/ThrottlingSignalProvider.h>
|
#include <quic/congestion_control/ThrottlingSignalProvider.h>
|
||||||
@ -659,9 +658,9 @@ struct QuicConnectionStateBase : public folly::DelayedDestruction {
|
|||||||
uint32_t maxReadBufferSize{kDefaultMaxDatagramsBuffered};
|
uint32_t maxReadBufferSize{kDefaultMaxDatagramsBuffered};
|
||||||
uint32_t maxWriteBufferSize{kDefaultMaxDatagramsBuffered};
|
uint32_t maxWriteBufferSize{kDefaultMaxDatagramsBuffered};
|
||||||
// Buffers Incoming Datagrams
|
// Buffers Incoming Datagrams
|
||||||
CircularDeque<ReadDatagram> readBuffer;
|
std::deque<ReadDatagram> readBuffer;
|
||||||
// Buffers Outgoing Datagrams
|
// Buffers Outgoing Datagrams
|
||||||
CircularDeque<BufQueue> writeBuffer;
|
std::deque<BufQueue> writeBuffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
DatagramState datagramState;
|
DatagramState datagramState;
|
||||||
|
@ -102,7 +102,7 @@ struct QuicStreamLike {
|
|||||||
|
|
||||||
// List of bytes that have been read and buffered. We need to buffer
|
// List of bytes that have been read and buffered. We need to buffer
|
||||||
// bytes in case we get bytes out of order.
|
// bytes in case we get bytes out of order.
|
||||||
CircularDeque<StreamBuffer> readBuffer;
|
std::deque<StreamBuffer> readBuffer;
|
||||||
|
|
||||||
// List of bytes that have been written to the QUIC layer.
|
// List of bytes that have been written to the QUIC layer.
|
||||||
BufQueue writeBuffer{};
|
BufQueue writeBuffer{};
|
||||||
@ -125,7 +125,7 @@ struct QuicStreamLike {
|
|||||||
|
|
||||||
// Stores a list of buffers which have been marked as loss by loss detector.
|
// Stores a list of buffers which have been marked as loss by loss detector.
|
||||||
// Each one represents one StreamFrame that was written.
|
// Each one represents one StreamFrame that was written.
|
||||||
CircularDeque<StreamBuffer> lossBuffer;
|
std::deque<StreamBuffer> lossBuffer;
|
||||||
|
|
||||||
// Current offset of the start bytes in the write buffer.
|
// Current offset of the start bytes in the write buffer.
|
||||||
// This changes when we pop stuff off the writeBuffer.
|
// This changes when we pop stuff off the writeBuffer.
|
||||||
@ -485,7 +485,7 @@ struct QuicStreamState : public QuicStreamLike {
|
|||||||
folly::F14FastMap<uint64_t, WriteBufferMeta> retransmissionBufMetas;
|
folly::F14FastMap<uint64_t, WriteBufferMeta> retransmissionBufMetas;
|
||||||
|
|
||||||
// WriteBufferMetas that's already marked lost. They will be retransmitted.
|
// WriteBufferMetas that's already marked lost. They will be retransmitted.
|
||||||
CircularDeque<WriteBufferMeta> lossBufMetas;
|
std::deque<WriteBufferMeta> lossBufMetas;
|
||||||
|
|
||||||
uint64_t streamLossCount{0};
|
uint64_t streamLossCount{0};
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ namespace test {
|
|||||||
|
|
||||||
constexpr uint8_t kStreamIncrement = 0x04;
|
constexpr uint8_t kStreamIncrement = 0x04;
|
||||||
|
|
||||||
using PeekIterator = CircularDeque<StreamBuffer>::const_iterator;
|
using PeekIterator = std::deque<StreamBuffer>::const_iterator;
|
||||||
|
|
||||||
class QuicStreamFunctionsTest : public Test {
|
class QuicStreamFunctionsTest : public Test {
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user