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

Unified Diff: net/tools/quic/quic_in_memory_cache.cc

Issue 1028923002: Make some changes to the QuicInMemory server to clarify the interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests Created 5 years, 9 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/tools/quic/quic_in_memory_cache.h ('k') | net/tools/quic/quic_in_memory_cache_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/tools/quic/quic_in_memory_cache.cc
diff --git a/net/tools/quic/quic_in_memory_cache.cc b/net/tools/quic/quic_in_memory_cache.cc
index cb96335819780352f448c80e26e43086ff3a9d32..4f55f73bedb408ff872d0f1631e1df2136b8638d 100644
--- a/net/tools/quic/quic_in_memory_cache.cc
+++ b/net/tools/quic/quic_in_memory_cache.cc
@@ -14,14 +14,13 @@ using base::FilePath;
using base::StringPiece;
using std::string;
-// Specifies the directory used during QuicInMemoryCache
-// construction to seed the cache. Cache directory can be
-// generated using `wget -p --save-headers <url>
-
namespace net {
namespace tools {
-std::string FLAGS_quic_in_memory_cache_dir = "";
+// Specifies the directory used during QuicInMemoryCache
+// construction to seed the cache. Cache directory can be
+// generated using `wget -p --save-headers <url>
+string FLAGS_quic_in_memory_cache_dir = "";
namespace {
@@ -59,57 +58,41 @@ QuicInMemoryCache* QuicInMemoryCache::GetInstance() {
}
const QuicInMemoryCache::Response* QuicInMemoryCache::GetResponse(
- const BalsaHeaders& request_headers) const {
- ResponseMap::const_iterator it = responses_.find(GetKey(request_headers));
+ StringPiece host,
+ StringPiece path) const {
+ ResponseMap::const_iterator it = responses_.find(GetKey(host, path));
if (it == responses_.end()) {
return nullptr;
}
return it->second;
}
-void QuicInMemoryCache::AddSimpleResponse(StringPiece method,
+void QuicInMemoryCache::AddSimpleResponse(StringPiece host,
StringPiece path,
- StringPiece version,
- StringPiece response_code,
+ int response_code,
StringPiece response_detail,
StringPiece body) {
- BalsaHeaders request_headers, response_headers;
- request_headers.SetRequestFirstlineFromStringPieces(method,
- path,
- version);
- response_headers.SetRequestFirstlineFromStringPieces(version,
- response_code,
- response_detail);
+ BalsaHeaders response_headers;
+ response_headers.SetRequestFirstlineFromStringPieces(
+ "HTTP/1.1", base::IntToString(response_code), response_detail);
response_headers.AppendHeader("content-length",
base::IntToString(body.length()));
- AddResponse(request_headers, response_headers, body);
+ AddResponse(host, path, response_headers, body);
}
-void QuicInMemoryCache::AddResponse(const BalsaHeaders& request_headers,
+void QuicInMemoryCache::AddResponse(StringPiece host,
+ StringPiece path,
const BalsaHeaders& response_headers,
StringPiece response_body) {
- VLOG(1) << "Adding response for: " << GetKey(request_headers);
- if (ContainsKey(responses_, GetKey(request_headers))) {
- LOG(DFATAL) << "Response for given request already exists!";
- return;
- }
- Response* new_response = new Response();
- new_response->set_headers(response_headers);
- new_response->set_body(response_body);
- responses_[GetKey(request_headers)] = new_response;
+ AddResponseImpl(host, path, REGULAR_RESPONSE, response_headers,
+ response_body);
}
-void QuicInMemoryCache::AddSpecialResponse(StringPiece method,
+void QuicInMemoryCache::AddSpecialResponse(StringPiece host,
StringPiece path,
- StringPiece version,
SpecialResponseType response_type) {
- BalsaHeaders request_headers, response_headers;
- request_headers.SetRequestFirstlineFromStringPieces(method,
- path,
- version);
- AddResponse(request_headers, response_headers, "");
- responses_[GetKey(request_headers)]->response_type_ = response_type;
+ AddResponseImpl(host, path, response_type, BalsaHeaders(), "");
}
QuicInMemoryCache::QuicInMemoryCache() {
@@ -135,11 +118,10 @@ void QuicInMemoryCache::Initialize() {
true,
base::FileEnumerator::FILES);
- FilePath file = file_list.Next();
- while (!file.empty()) {
+ for (FilePath file = file_list.Next(); !file.empty();
+ file = file_list.Next()) {
// Need to skip files in .svn directories
- if (file.value().find("/.svn/") != std::string::npos) {
- file = file_list.Next();
+ if (file.value().find("/.svn/") != string::npos) {
continue;
}
@@ -193,18 +175,7 @@ void QuicInMemoryCache::Initialize() {
if (path[path.length() - 1] == ',') {
path.remove_suffix(1);
}
- // Set up request headers. Assume method is GET and protocol is HTTP/1.1.
- request_headers.SetRequestFirstlineFromStringPieces("GET",
- path,
- "HTTP/1.1");
- request_headers.ReplaceOrAppendHeader("host", host);
-
- VLOG(1) << "Inserting 'http://" << GetKey(request_headers)
- << "' into QuicInMemoryCache.";
-
- AddResponse(request_headers, response_headers, caching_visitor.body());
-
- file = file_list.Next();
+ AddResponse(host, path, response_headers, caching_visitor.body());
}
}
@@ -212,20 +183,27 @@ QuicInMemoryCache::~QuicInMemoryCache() {
STLDeleteValues(&responses_);
}
-string QuicInMemoryCache::GetKey(const BalsaHeaders& request_headers) const {
- StringPiece uri = request_headers.request_uri();
- if (uri.size() == 0) {
- return "";
- }
- StringPiece host;
- if (uri[0] == '/') {
- host = request_headers.GetHeader("host");
- } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "https://")) {
- uri.remove_prefix(8);
- } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "http://")) {
- uri.remove_prefix(7);
+void QuicInMemoryCache::AddResponseImpl(
+ StringPiece host,
+ StringPiece path,
+ SpecialResponseType response_type,
+ const BalsaHeaders& response_headers,
+ StringPiece response_body) {
+ string key = GetKey(host, path);
+ VLOG(1) << "Adding response for: " << key;
+ if (ContainsKey(responses_, key)) {
+ LOG(DFATAL) << "Response for '" << key << "' already exists!";
+ return;
}
- return host.as_string() + uri.as_string();
+ Response* new_response = new Response();
+ new_response->set_response_type(response_type);
+ new_response->set_headers(response_headers);
+ new_response->set_body(response_body);
+ responses_[key] = new_response;
+}
+
+string QuicInMemoryCache::GetKey(StringPiece host, StringPiece path) const {
+ return host.as_string() + path.as_string();
}
} // namespace tools
« no previous file with comments | « net/tools/quic/quic_in_memory_cache.h ('k') | net/tools/quic/quic_in_memory_cache_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698