Index: net/quic/quic_session.h |
=================================================================== |
--- net/quic/quic_session.h (revision 165858) |
+++ net/quic/quic_session.h (working copy) |
@@ -1,117 +0,0 @@ |
-// 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. |
-// |
-// A QuicSession, which demuxes a single connection to individual streams. |
- |
-#ifndef NET_QUIC_QUIC_SESSION_H_ |
-#define NET_QUIC_QUIC_SESSION_H_ |
- |
-#include <vector> |
- |
-#include "base/compiler_specific.h" |
-#include "base/hash_tables.h" |
-#include "net/base/ip_endpoint.h" |
-#include "net/quic/quic_connection.h" |
-#include "net/quic/quic_crypto_stream.h" |
-#include "net/quic/quic_packet_creator.h" |
-#include "net/quic/quic_protocol.h" |
-#include "net/quic/reliable_quic_stream.h" |
- |
-namespace net { |
- |
-class NET_EXPORT_PRIVATE QuicSession : public QuicConnectionVisitorInterface { |
- public: |
- QuicSession(QuicConnection* connection, bool is_server); |
- |
- virtual ~QuicSession(); |
- |
- // QuicConnectionVisitorInterface methods: |
- virtual bool OnPacket(const IPEndPoint& self_address, |
- const IPEndPoint& peer_address, |
- const QuicPacketHeader& header, |
- const std::vector<QuicStreamFrame>& frame) OVERRIDE; |
- virtual void OnRstStream(const QuicRstStreamFrame& frame) OVERRIDE; |
- virtual void ConnectionClose(QuicErrorCode error, bool from_peer) OVERRIDE; |
- // Not needed for HTTP. |
- virtual void OnAck(AckedPackets acked_packets) OVERRIDE {} |
- |
- // Called by streams when they want to write data to the peer. |
- virtual int WriteData(QuicStreamId id, base::StringPiece data, |
- QuicStreamOffset offset, bool fin); |
- // Called by streams when they want to close the stream in both directions. |
- void SendRstStream(QuicStreamId id, |
- QuicErrorCode error, |
- QuicStreamOffset offset); |
- |
- // Removes the stream associated with 'stream_id' from the active stream map. |
- virtual void CloseStream(QuicStreamId stream_id); |
- |
- // Returns true once the crypto handshake is complete. |
- virtual bool IsHandshakeComplete(); |
- |
- QuicConnection* connection() { return connection_.get(); } |
- size_t num_active_requests() const { return stream_map_.size(); } |
- const IPEndPoint& peer_address() const { |
- return connection_->peer_address(); |
- } |
- |
- QuicPacketCreator::Options* options() { return connection()->options(); } |
- |
- // Returns the number of currently open streams, including those which have |
- // been implicitly created. |
- virtual size_t GetNumOpenStreams(); |
- |
- protected: |
- // Creates a new stream, owned by the caller, to handle a peer-initiated |
- // stream. Returns NULL if max streams have already been opened. |
- virtual ReliableQuicStream* CreateIncomingReliableStream(QuicStreamId id) = 0; |
- |
- // Create a new stream, owned by the caller, to handle a locally-initiated |
- // stream. Returns NULL if max streams have already been opened. |
- virtual ReliableQuicStream* CreateOutgoingReliableStream() = 0; |
- |
- // Return the reserved crypto stream. |
- virtual QuicCryptoStream* GetCryptoStream() = 0; |
- |
- // Adds 'stream' to the active stream map. |
- void ActivateStream(ReliableQuicStream* stream); |
- |
- // Returns the stream id for a new stream. |
- QuicStreamId GetNextStreamId(); |
- |
- // Returns true if the stream existed previously and has been closed. |
- bool IsClosedStream(QuicStreamId id); |
- |
- ReliableQuicStream* GetIncomingReliableStream(QuicStreamId stream_id); |
- |
- size_t get_max_open_streams() const { |
- return max_open_streams_; |
- } |
- |
- private: |
- friend class QuicSessionPeer; |
- |
- typedef base::hash_map<QuicStreamId, ReliableQuicStream*> ReliableStreamMap; |
- |
- ReliableQuicStream* GetStream(const QuicStreamId stream_id); |
- |
- scoped_ptr<QuicConnection> connection_; |
- |
- // Returns the maximum number of streams this connection can open. |
- const size_t max_open_streams_; |
- |
- // Map from StreamId to pointers to streams that are owned by the caller. |
- ReliableStreamMap stream_map_; |
- QuicStreamId next_stream_id_; |
- bool is_server_; |
- |
- // Set of stream ids that have been "implicitly created" by receipt |
- // of a stream id larger than the next expected stream id. |
- base::hash_set<QuicStreamId> implicitly_created_streams_; |
- QuicStreamId largest_peer_created_stream_id_; |
-}; |
- |
-} // namespace net |
- |
-#endif // NET_QUIC_QUIC_SESSION_H_ |