summaryrefslogtreecommitdiffstats
path: root/net/http/http_server_properties_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/http/http_server_properties_impl.h')
-rw-r--r--net/http/http_server_properties_impl.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/net/http/http_server_properties_impl.h b/net/http/http_server_properties_impl.h
index f697848..487e0fd 100644
--- a/net/http/http_server_properties_impl.h
+++ b/net/http/http_server_properties_impl.h
@@ -12,10 +12,12 @@
#include "base/basictypes.h"
#include "base/gtest_prod_util.h"
#include "base/hash_tables.h"
+#include "base/memory/mru_cache.h"
#include "base/threading/non_thread_safe.h"
#include "base/values.h"
#include "net/base/host_port_pair.h"
#include "net/base/net_export.h"
+#include "net/http/http_pipelined_host_capability.h"
#include "net/http/http_server_properties.h"
namespace base {
@@ -42,6 +44,11 @@ class NET_EXPORT HttpServerPropertiesImpl
void InitializeSpdySettingsServers(SpdySettingsMap* spdy_settings_map);
+ // Initializes |pipeline_capability_map_| with the servers (host/port) from
+ // |pipeline_capability_map| that either support HTTP pipelining or not.
+ void InitializePipelineCapabilities(
+ const PipelineCapabilityMap* pipeline_capability_map);
+
// Get the list of servers (host/port) that support SPDY.
void GetSpdyServerList(base::ListValue* spdy_server_list) const;
@@ -56,6 +63,12 @@ class NET_EXPORT HttpServerPropertiesImpl
static void ForceAlternateProtocol(const PortAlternateProtocolPair& pair);
static void DisableForcedAlternateProtocol();
+ // Changes the number of host/port pairs we remember pipelining capability
+ // for. A larger number means we're more likely to be able to pipeline
+ // immediately if a host is known good, but uses more memory. This function
+ // can only be called if |pipeline_capability_map_| is empty.
+ void SetNumPipelinedHostsToRemember(int max_size);
+
// -----------------------------
// HttpServerProperties methods:
// -----------------------------
@@ -106,7 +119,20 @@ class NET_EXPORT HttpServerPropertiesImpl
// Returns all persistent SpdySettings.
virtual const SpdySettingsMap& spdy_settings_map() const OVERRIDE;
+ virtual HttpPipelinedHostCapability GetPipelineCapability(
+ const HostPortPair& origin) OVERRIDE;
+
+ virtual void SetPipelineCapability(
+ const HostPortPair& origin,
+ HttpPipelinedHostCapability capability) OVERRIDE;
+
+ virtual void ClearPipelineCapabilities() OVERRIDE;
+
+ virtual PipelineCapabilityMap GetPipelineCapabilityMap() const OVERRIDE;
+
private:
+ typedef base::MRUCache<
+ HostPortPair, HttpPipelinedHostCapability> CachedPipelineCapabilityMap;
// |spdy_servers_table_| has flattened representation of servers (host/port
// pair) that either support or not support SPDY protocol.
typedef base::hash_map<std::string, bool> SpdyServerHostPortTable;
@@ -114,6 +140,7 @@ class NET_EXPORT HttpServerPropertiesImpl
AlternateProtocolMap alternate_protocol_map_;
SpdySettingsMap spdy_settings_map_;
+ scoped_ptr<CachedPipelineCapabilityMap> pipeline_capability_map_;
DISALLOW_COPY_AND_ASSIGN(HttpServerPropertiesImpl);
};