mirror of
https://github.com/facebookincubator/mvfst.git
synced 2025-08-08 09:42:06 +03:00
Replace RegularQuicPacketBuilder with PacketBuilderInterface in the frame
Summary: as title Reviewed By: mjoras Differential Revision: D20899342 fbshipit-source-id: 3af89de5350f171c575fe4e7385f3014b95357a5
This commit is contained in:
committed by
Facebook GitHub Bot
parent
7d52f280f8
commit
e5f26c960e
@@ -115,7 +115,7 @@ FrameScheduler FrameScheduler::Builder::build() && {
|
||||
FrameScheduler::FrameScheduler(std::string name) : name_(std::move(name)) {}
|
||||
|
||||
SchedulingResult FrameScheduler::scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) {
|
||||
// We need to keep track of writable bytes after writing header.
|
||||
writableBytes = writableBytes > builder.getHeaderBytes()
|
||||
@@ -495,7 +495,7 @@ bool CryptoStreamScheduler::hasData() const {
|
||||
}
|
||||
|
||||
SchedulingResult CryptoStreamScheduler::scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) {
|
||||
// We need to keep track of writable bytes after writing header.
|
||||
writableBytes = writableBytes > builder.getHeaderBytes()
|
||||
@@ -527,7 +527,7 @@ bool CloningScheduler::hasData() const {
|
||||
}
|
||||
|
||||
SchedulingResult CloningScheduler::scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) {
|
||||
// The writableBytes in this function shouldn't be limited by cwnd, since
|
||||
// we only use CloningScheduler for the cases that we want to bypass cwnd for
|
||||
@@ -554,6 +554,7 @@ SchedulingResult CloningScheduler::scheduleFramesForPacket(
|
||||
// independent header builder.
|
||||
auto builderPnSpace = builder.getPacketHeader().getPacketNumberSpace();
|
||||
CHECK_EQ(builderPnSpace, PacketNumberSpace::AppData);
|
||||
// TODO: This needs to be provided from outside now
|
||||
RegularQuicPacketBuilder regularBuilder(
|
||||
conn_.udpSendPacketLen,
|
||||
builder.getPacketHeader(),
|
||||
|
@@ -46,7 +46,7 @@ class QuicPacketScheduler {
|
||||
* a clone and the associated PacketEvent for both origin and clone.
|
||||
*/
|
||||
virtual SchedulingResult scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) = 0;
|
||||
|
||||
/**
|
||||
@@ -298,7 +298,7 @@ class CryptoStreamScheduler {
|
||||
* of CryptoStreamScheduler, this will always return folly::none.
|
||||
*/
|
||||
SchedulingResult scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes);
|
||||
|
||||
bool hasData() const;
|
||||
@@ -355,7 +355,7 @@ class FrameScheduler : public QuicPacketScheduler {
|
||||
explicit FrameScheduler(std::string name);
|
||||
|
||||
SchedulingResult scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) override;
|
||||
|
||||
// If any scheduler, including AckScheduler, has pending data to send
|
||||
@@ -406,7 +406,7 @@ class CloningScheduler : public QuicPacketScheduler {
|
||||
* clone and the associated PacketEvent for both origin and clone.
|
||||
*/
|
||||
SchedulingResult scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builder,
|
||||
PacketBuilderInterface&& builder,
|
||||
uint32_t writableBytes) override;
|
||||
|
||||
std::string name() const override;
|
||||
|
@@ -29,17 +29,15 @@ class MockFrameScheduler : public FrameScheduler {
|
||||
|
||||
// override methods accepting rvalue ref since gmock doesn't support it
|
||||
SchedulingResult scheduleFramesForPacket(
|
||||
RegularQuicPacketBuilder&& builderIn,
|
||||
PacketBuilderInterface&& builderIn,
|
||||
uint32_t writableBytes) override {
|
||||
auto builder =
|
||||
std::make_unique<RegularQuicPacketBuilder>(std::move(builderIn));
|
||||
return _scheduleFramesForPacket(builder, writableBytes);
|
||||
return _scheduleFramesForPacket(&builderIn, writableBytes);
|
||||
}
|
||||
|
||||
GMOCK_METHOD0_(, const, , hasData, bool());
|
||||
MOCK_METHOD2(
|
||||
_scheduleFramesForPacket,
|
||||
SchedulingResult(std::unique_ptr<RegularQuicPacketBuilder>&, uint32_t));
|
||||
SchedulingResult(PacketBuilderInterface*, uint32_t));
|
||||
};
|
||||
|
||||
class MockReadCallback : public QuicSocket::ReadCallback {
|
||||
|
@@ -500,8 +500,7 @@ TEST_F(QuicPacketSchedulerTest, CloneSchedulerUseNormalSchedulerFirst) {
|
||||
EXPECT_CALL(mockScheduler, _scheduleFramesForPacket(_, _))
|
||||
.Times(1)
|
||||
.WillOnce(Invoke(
|
||||
[&, headerCopy = header](
|
||||
std::unique_ptr<RegularQuicPacketBuilder>&, uint32_t) mutable {
|
||||
[&, headerCopy = header](PacketBuilderInterface*, uint32_t) mutable {
|
||||
RegularQuicWritePacket packet(std::move(headerCopy));
|
||||
packet.frames.push_back(MaxDataFrame(2832));
|
||||
RegularQuicPacketBuilder::Packet builtPacket(
|
||||
|
Reference in New Issue
Block a user