10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be
30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file.
40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#ifndef NET_QUIC_TEST_TOOLS_QUIC_FLOW_CONTROLLER_PEER_H_
60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define NET_QUIC_TEST_TOOLS_QUIC_FLOW_CONTROLLER_PEER_H_
70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "net/quic/quic_protocol.h"
90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace net {
110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass QuicFlowController;
130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace test {
150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass QuicFlowControllerPeer {
170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public:
180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static void SetSendWindowOffset(QuicFlowController* flow_controller,
190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                  uint64 offset);
200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static void SetReceiveWindowOffset(QuicFlowController* flow_controller,
220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                     uint64 offset);
230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static void SetMaxReceiveWindow(QuicFlowController* flow_controller,
250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                  uint64 window_size);
260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static uint64 SendWindowOffset(QuicFlowController* flow_controller);
280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static uint64 SendWindowSize(QuicFlowController* flow_controller);
300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static uint64 ReceiveWindowOffset(QuicFlowController* flow_controller);
320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
330529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  static uint64 ReceiveWindowSize(QuicFlowController* flow_controller);
340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch private:
360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DISALLOW_COPY_AND_ASSIGN(QuicFlowControllerPeer);
370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch};
380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}  // namespace test
400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}  // namespace net
410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#endif  // NET_QUIC_TEST_TOOLS_QUIC_FLOW_CONTROLLER_PEER_H_
43