Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(997)

Unified Diff: net/quic/quic_server_session_base.h

Issue 2193073003: Move shared files in net/quic/ into net/quic/core/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: io_thread_unittest.cc Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_server_id_test.cc ('k') | net/quic/quic_server_session_base.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_
« no previous file with comments | « net/quic/quic_server_id_test.cc ('k') | net/quic/quic_server_session_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698