| 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_
|
|
|