diff --git a/quic/api/QuicPacketScheduler.cpp b/quic/api/QuicPacketScheduler.cpp index 20e2b1887..d268b3e34 100644 --- a/quic/api/QuicPacketScheduler.cpp +++ b/quic/api/QuicPacketScheduler.cpp @@ -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(), diff --git a/quic/api/QuicPacketScheduler.h b/quic/api/QuicPacketScheduler.h index 40ebac463..8bd732054 100644 --- a/quic/api/QuicPacketScheduler.h +++ b/quic/api/QuicPacketScheduler.h @@ -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; diff --git a/quic/api/test/Mocks.h b/quic/api/test/Mocks.h index cd240bf10..43de05d6c 100644 --- a/quic/api/test/Mocks.h +++ b/quic/api/test/Mocks.h @@ -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(std::move(builderIn)); - return _scheduleFramesForPacket(builder, writableBytes); + return _scheduleFramesForPacket(&builderIn, writableBytes); } GMOCK_METHOD0_(, const, , hasData, bool()); MOCK_METHOD2( _scheduleFramesForPacket, - SchedulingResult(std::unique_ptr&, uint32_t)); + SchedulingResult(PacketBuilderInterface*, uint32_t)); }; class MockReadCallback : public QuicSocket::ReadCallback { diff --git a/quic/api/test/QuicPacketSchedulerTest.cpp b/quic/api/test/QuicPacketSchedulerTest.cpp index 04f7aab8b..c409171a5 100644 --- a/quic/api/test/QuicPacketSchedulerTest.cpp +++ b/quic/api/test/QuicPacketSchedulerTest.cpp @@ -500,8 +500,7 @@ TEST_F(QuicPacketSchedulerTest, CloneSchedulerUseNormalSchedulerFirst) { EXPECT_CALL(mockScheduler, _scheduleFramesForPacket(_, _)) .Times(1) .WillOnce(Invoke( - [&, headerCopy = header]( - std::unique_ptr&, uint32_t) mutable { + [&, headerCopy = header](PacketBuilderInterface*, uint32_t) mutable { RegularQuicWritePacket packet(std::move(headerCopy)); packet.frames.push_back(MaxDataFrame(2832)); RegularQuicPacketBuilder::Packet builtPacket(