reliable_quic_stream_peer.h revision e5d81f57cb97b3b6b7fccc9c5610d21eb81db09d
12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef NET_QUIC_TEST_TOOLS_RELIABLE_QUIC_STREAM_PEER_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define NET_QUIC_TEST_TOOLS_RELIABLE_QUIC_STREAM_PEER_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/quic_protocol.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net {
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ReliableQuicStream;
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace test {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ReliableQuicStreamPeer {
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void SetWriteSideClosed(bool value, ReliableQuicStream* stream);
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void SetStreamBytesWritten(QuicStreamOffset stream_bytes_written,
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    ReliableQuicStream* stream);
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static void CloseReadSide(ReliableQuicStream* stream);
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static bool FinSent(ReliableQuicStream* stream);
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static bool RstSent(ReliableQuicStream* stream);
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
27e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static void SetFlowControlSendOffset(ReliableQuicStream* stream,
28e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                       QuicStreamOffset offset);
29e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static void SetFlowControlReceiveOffset(ReliableQuicStream* stream,
30e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                          QuicStreamOffset offset);
31e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static void SetFlowControlMaxReceiveWindow(ReliableQuicStream* stream,
32e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch                                             uint64 window_size);
33e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static QuicStreamOffset SendWindowOffset(ReliableQuicStream* stream);
34e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static uint64 SendWindowSize(ReliableQuicStream* stream);
35e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static QuicStreamOffset ReceiveWindowOffset(ReliableQuicStream* stream);
36e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static uint64 ReceiveWindowSize(ReliableQuicStream* stream);
37e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
38e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  static uint32 SizeOfQueuedData(ReliableQuicStream* stream);
39e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ReliableQuicStreamPeer);
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace test
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace net
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // NET_QUIC_TEST_TOOLS_RELIABLE_QUIC_STREAM_PEER_H_
48