1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/quic/congestion_control/send_algorithm_interface.h" 6 7 #include "net/quic/congestion_control/fix_rate_sender.h" 8 #include "net/quic/congestion_control/tcp_cubic_sender.h" 9 #include "net/quic/quic_protocol.h" 10 11 namespace net { 12 13 const bool kUseReno = false; 14 15 class RttStats; 16 17 // Factory for send side congestion control algorithm. 18 SendAlgorithmInterface* SendAlgorithmInterface::Create( 19 const QuicClock* clock, 20 const RttStats* rtt_stats, 21 CongestionFeedbackType type, 22 QuicConnectionStats* stats) { 23 switch (type) { 24 case kTCP: 25 return new TcpCubicSender(clock, rtt_stats, kUseReno, 26 kMaxTcpCongestionWindow, stats); 27 case kInterArrival: 28 LOG(DFATAL) << "InterArrivalSendAlgorithm no longer supported."; 29 return NULL; 30 case kFixRate: 31 return new FixRateSender(rtt_stats); 32 case kTCPBBR: 33 LOG(DFATAL) << "BbrTcpSender is not supported."; 34 return NULL; 35 } 36 return NULL; 37 } 38 39 } // namespace net 40