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_QUIC_SESSION_PEER_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define NET_QUIC_TEST_TOOLS_QUIC_SESSION_PEER_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "net/quic/quic_protocol.h"
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "net/quic/quic_write_blocked_list.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace net {
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass QuicCryptoStream;
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class QuicDataStream;
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)class QuicHeadersStream;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class QuicSession;
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace test {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class QuicSessionPeer {
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  static void SetNextStreamId(QuicSession* session, QuicStreamId id);
2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  static void SetMaxOpenStreams(QuicSession* session, uint32 max_streams);
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  static QuicCryptoStream* GetCryptoStream(QuicSession* session);
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static QuicHeadersStream* GetHeadersStream(QuicSession* session);
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static void SetHeadersStream(QuicSession* session,
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                               QuicHeadersStream* headers_stream);
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  static QuicWriteBlockedList* GetWriteBlockedStreams(QuicSession* session);
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static QuicDataStream* GetIncomingDataStream(QuicSession* session,
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                               QuicStreamId stream_id);
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  static std::map<QuicStreamId, QuicStreamOffset>&
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  GetLocallyClosedStreamsHighestOffset(QuicSession* session);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(QuicSessionPeer);
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace test
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace net
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // NET_QUIC_TEST_TOOLS_QUIC_SESSION_PEER_H_
42