Index: net/quic/quic_server_session_base.h |
diff --git a/net/quic/quic_server_session_base.h b/net/quic/quic_server_session_base.h |
deleted file mode 100644 |
index 49f93e811de7750c33cdb813120950377ccf9eb2..0000000000000000000000000000000000000000 |
--- a/net/quic/quic_server_session_base.h |
+++ /dev/null |
@@ -1,189 +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 server specific QuicSession subclass. |
- |
-#ifndef NET_QUIC_QUIC_SERVER_SESSION_BASE_H_ |
-#define NET_QUIC_QUIC_SERVER_SESSION_BASE_H_ |
- |
-#include <stdint.h> |
- |
-#include <cstdint> |
-#include <memory> |
-#include <set> |
-#include <string> |
-#include <vector> |
- |
-#include "base/macros.h" |
-#include "net/quic/crypto/quic_compressed_certs_cache.h" |
-#include "net/quic/quic_crypto_server_stream.h" |
-#include "net/quic/quic_protocol.h" |
-#include "net/quic/quic_spdy_session.h" |
- |
-namespace net { |
- |
-class QuicBlockedWriterInterface; |
-class QuicConfig; |
-class QuicConnection; |
-class QuicCryptoServerConfig; |
-class ReliableQuicStream; |
- |
-namespace test { |
-class QuicServerSessionBasePeer; |
-class QuicSimpleServerSessionPeer; |
-} // namespace test |
- |
-class NET_EXPORT_PRIVATE QuicServerSessionBase : public QuicSpdySession { |
- public: |
- // An interface from the session to the entity owning the session. |
- // This lets the session notify its owner (the Dispatcher) when the connection |
- // is closed, blocked, or added/removed from the time-wait std::list. |
- class Visitor { |
- public: |
- virtual ~Visitor() {} |
- |
- // Called when the connection is closed. |
- virtual void OnConnectionClosed(QuicConnectionId connection_id, |
- QuicErrorCode error, |
- const std::string& error_details) = 0; |
- |
- // Called when the session has become write blocked. |
- virtual void OnWriteBlocked(QuicBlockedWriterInterface* blocked_writer) = 0; |
- |
- // Called after the given connection is added to the time-wait std::list. |
- virtual void OnConnectionAddedToTimeWaitList( |
- QuicConnectionId connection_id) = 0; |
- }; |
- |
- // Provides helper functions for the session. |
- class Helper { |
- public: |
- virtual ~Helper() {} |
- |
- // Given the current connection_id, generates a new ConnectionId to |
- // be returned with a stateless reject. |
- virtual QuicConnectionId GenerateConnectionIdForReject( |
- QuicConnectionId connection_id) const = 0; |
- |
- // Returns true if |message|, which was received on |self_address| is |
- // acceptable according to the visitor's policy. Otherwise, returns false |
- // and populates |error_details|. |
- virtual bool CanAcceptClientHello(const CryptoHandshakeMessage& message, |
- const IPEndPoint& self_address, |
- std::string* error_details) const = 0; |
- }; |
- |
- // |crypto_config| must outlive the session. |
- QuicServerSessionBase(const QuicConfig& config, |
- QuicConnection* connection, |
- Visitor* visitor, |
- Helper* helper, |
- const QuicCryptoServerConfig* crypto_config, |
- QuicCompressedCertsCache* compressed_certs_cache); |
- |
- // Override the base class to notify the owner of the connection close. |
- void OnConnectionClosed(QuicErrorCode error, |
- const std::string& error_details, |
- ConnectionCloseSource source) override; |
- void OnWriteBlocked() override; |
- |
- // Sends a server config update to the client, containing new bandwidth |
- // estimate. |
- void OnCongestionWindowChange(QuicTime now) override; |
- |
- ~QuicServerSessionBase() override; |
- |
- void Initialize() override; |
- |
- const QuicCryptoServerStreamBase* crypto_stream() const { |
- return crypto_stream_.get(); |
- } |
- |
- // Override base class to process bandwidth related config received from |
- // client. |
- void OnConfigNegotiated() override; |
- |
- void set_serving_region(const std::string& serving_region) { |
- serving_region_ = serving_region; |
- } |
- |
- bool server_push_enabled() const { return server_push_enabled_; } |
- |
- // Delegates to the helper's GenerateConnectionIdForReject method. |
- QuicConnectionId GenerateConnectionIdForReject( |
- QuicConnectionId connection_id); |
- |
- // Delegates to the helper's CanAcceptClientHello method. |
- bool CanAcceptClientHello(const CryptoHandshakeMessage& message, |
- std::string* error_details); |
- |
- protected: |
- // QuicSession methods(override them with return type of QuicSpdyStream*): |
- QuicCryptoServerStreamBase* GetCryptoStream() override; |
- |
- // If an outgoing stream can be created, return true. |
- // Return false when connection is closed or forward secure encryption hasn't |
- // established yet or number of server initiated streams already reaches the |
- // upper limit. |
- bool ShouldCreateOutgoingDynamicStream() override; |
- |
- // If we should create an incoming stream, returns true. Otherwise |
- // does error handling, including communicating the error to the client and |
- // possibly closing the connection, and returns false. |
- bool ShouldCreateIncomingDynamicStream(QuicStreamId id) override; |
- |
- virtual QuicCryptoServerStreamBase* CreateQuicCryptoServerStream( |
- const QuicCryptoServerConfig* crypto_config, |
- QuicCompressedCertsCache* compressed_certs_cache) = 0; |
- |
- const QuicCryptoServerConfig* crypto_config() { return crypto_config_; } |
- |
- void set_server_push_enabled(bool enable) { server_push_enabled_ = enable; } |
- |
- private: |
- friend class test::QuicServerSessionBasePeer; |
- friend class test::QuicSimpleServerSessionPeer; |
- |
- const QuicCryptoServerConfig* crypto_config_; |
- |
- // The cache which contains most recently compressed certs. |
- // Owned by QuicDispatcher. |
- QuicCompressedCertsCache* compressed_certs_cache_; |
- |
- std::unique_ptr<QuicCryptoServerStreamBase> crypto_stream_; |
- Visitor* visitor_; |
- Helper* helper_; |
- |
- // Whether bandwidth resumption is enabled for this connection. |
- bool bandwidth_resumption_enabled_; |
- |
- // The most recent bandwidth estimate sent to the client. |
- QuicBandwidth bandwidth_estimate_sent_to_client_; |
- |
- // Text describing server location. Sent to the client as part of the bandwith |
- // estimate in the source-address token. Optional, can be left empty. |
- std::string serving_region_; |
- |
- // Time at which we send the last SCUP to the client. |
- QuicTime last_scup_time_; |
- |
- // Number of packets sent to the peer, at the time we last sent a SCUP. |
- int64_t last_scup_packet_number_; |
- |
- // Converts QuicBandwidth to an int32 bytes/second that can be |
- // stored in CachedNetworkParameters. TODO(jokulik): This function |
- // should go away once we fix http://b//27897982 |
- int32_t BandwidthToCachedParameterBytesPerSecond( |
- const QuicBandwidth& bandwidth); |
- |
- // Set during handshake. If true, resources in x-associated-content and link |
- // headers will be pushed. see: go/gfe_server_push. |
- bool server_push_enabled_; |
- |
- DISALLOW_COPY_AND_ASSIGN(QuicServerSessionBase); |
-}; |
- |
-} // namespace net |
- |
-#endif // NET_QUIC_QUIC_SERVER_SESSION_BASE_H_ |