// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef QUICHE_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_ #define QUICHE_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_ #include "quiche/quic/core/quic_packets.h" #include "quiche/quic/platform/api/quic_export.h" namespace quic { namespace test { class QuicFlowControllerPeer; } // namespace test class QuicConnection; class QuicSession; // How much larger the session flow control window needs to be relative to any // stream's flow control window. inline constexpr float kSessionFlowControlMultiplier = …; class QUICHE_EXPORT QuicFlowControllerInterface { … }; // QuicFlowController allows a QUIC stream or connection to perform flow // control. The stream/connection owns a QuicFlowController which keeps track of // bytes sent/received, can tell the owner if it is flow control blocked, and // can send WINDOW_UPDATE or BLOCKED frames when needed. class QUICHE_EXPORT QuicFlowController : public QuicFlowControllerInterface { … }; } // namespace quic #endif // QUICHE_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_