1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef NET_SPDY_SPDY_SETTING_STORAGE_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NET_SPDY_SPDY_SETTING_STORAGE_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <map> 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/host_port_pair.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/spdy/spdy_framer.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace net { 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// SpdySettingsStorage stores SpdySettings which have been transmitted between 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// endpoints for the SPDY SETTINGS frame. 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass SpdySettingsStorage { 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch SpdySettingsStorage(); 213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ~SpdySettingsStorage(); 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Get a copy of the SpdySettings stored for a host. 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // If no settings are stored, returns an empty set of settings. 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const spdy::SpdySettings& Get(const HostPortPair& host_port_pair) const; 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Save settings for a host. 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch void Set(const HostPortPair& host_port_pair, 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const spdy::SpdySettings& settings); 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch typedef std::map<HostPortPair, spdy::SpdySettings> SettingsMap; 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch SettingsMap settings_map_; 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(SpdySettingsStorage); 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace net 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // NET_SPDY_SPDY_SETTING_STORAGE_H_ 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 43