// Copyright (c) 2012 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. #include "net/quic/test_tools/quic_session_peer.h" #include "base/stl_util.h" #include "net/quic/quic_session.h" #include "net/quic/reliable_quic_stream.h" using std::map; namespace net { namespace test { // static QuicStreamId QuicSessionPeer::GetNextOutgoingStreamId(QuicSession* session) { return session->GetNextOutgoingStreamId(); } // static void QuicSessionPeer::SetNextOutgoingStreamId(QuicSession* session, QuicStreamId id) { session->next_outgoing_stream_id_ = id; } // static void QuicSessionPeer::SetMaxOpenIncomingStreams(QuicSession* session, uint32_t max_streams) { session->max_open_incoming_streams_ = max_streams; } // static void QuicSessionPeer::SetMaxOpenOutgoingStreams(QuicSession* session, uint32_t max_streams) { session->max_open_outgoing_streams_ = max_streams; } // static QuicCryptoStream* QuicSessionPeer::GetCryptoStream(QuicSession* session) { return session->GetCryptoStream(); } // static QuicWriteBlockedList* QuicSessionPeer::GetWriteBlockedStreams( QuicSession* session) { return &session->write_blocked_streams_; } // static ReliableQuicStream* QuicSessionPeer::GetOrCreateDynamicStream( QuicSession* session, QuicStreamId stream_id) { return session->GetOrCreateDynamicStream(stream_id); } // static map& QuicSessionPeer::GetLocallyClosedStreamsHighestOffset(QuicSession* session) { return session->locally_closed_streams_highest_offset_; } // static QuicSession::StreamMap& QuicSessionPeer::static_streams(QuicSession* session) { return session->static_streams(); } // static QuicSession::StreamMap& QuicSessionPeer::dynamic_streams(QuicSession* session) { return session->dynamic_streams(); } // static std::unordered_set* QuicSessionPeer::GetDrainingStreams( QuicSession* session) { return &session->draining_streams_; } // static bool QuicSessionPeer::IsStreamClosed(QuicSession* session, QuicStreamId id) { DCHECK_NE(0u, id); return session->IsClosedStream(id); } // static bool QuicSessionPeer::IsStreamCreated(QuicSession* session, QuicStreamId id) { DCHECK_NE(0u, id); return ContainsKey(session->dynamic_streams(), id); } // static bool QuicSessionPeer::IsStreamAvailable(QuicSession* session, QuicStreamId id) { DCHECK_NE(0u, id); return ContainsKey(session->available_streams_, id); } // static bool QuicSessionPeer::IsStreamUncreated(QuicSession* session, QuicStreamId id) { DCHECK_NE(0u, id); if (id % 2 == session->next_outgoing_stream_id_ % 2) { // locally-created stream. return id >= session->next_outgoing_stream_id_; } else { // peer-created stream. return id > session->largest_peer_created_stream_id_; } } } // namespace test } // namespace net