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

Side by Side Diff: net/tools/quic/quic_in_memory_cache.cc

Issue 266243004: Clang format slam. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/tools/quic/quic_in_memory_cache.h" 5 #include "net/tools/quic/quic_in_memory_cache.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/files/file_enumerator.h" 8 #include "base/files/file_enumerator.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 14 matching lines...) Expand all
25 25
26 namespace { 26 namespace {
27 27
28 // BalsaVisitor implementation (glue) which caches response bodies. 28 // BalsaVisitor implementation (glue) which caches response bodies.
29 class CachingBalsaVisitor : public NoOpBalsaVisitor { 29 class CachingBalsaVisitor : public NoOpBalsaVisitor {
30 public: 30 public:
31 CachingBalsaVisitor() : done_framing_(false) {} 31 CachingBalsaVisitor() : done_framing_(false) {}
32 virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE { 32 virtual void ProcessBodyData(const char* input, size_t size) OVERRIDE {
33 AppendToBody(input, size); 33 AppendToBody(input, size);
34 } 34 }
35 virtual void MessageDone() OVERRIDE { 35 virtual void MessageDone() OVERRIDE { done_framing_ = true; }
36 done_framing_ = true;
37 }
38 virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE { 36 virtual void HandleHeaderError(BalsaFrame* framer) OVERRIDE {
39 UnhandledError(); 37 UnhandledError();
40 } 38 }
41 virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE { 39 virtual void HandleHeaderWarning(BalsaFrame* framer) OVERRIDE {
42 UnhandledError(); 40 UnhandledError();
43 } 41 }
44 virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE { 42 virtual void HandleChunkingError(BalsaFrame* framer) OVERRIDE {
45 UnhandledError(); 43 UnhandledError();
46 } 44 }
47 virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE { 45 virtual void HandleBodyError(BalsaFrame* framer) OVERRIDE {
48 UnhandledError(); 46 UnhandledError();
49 } 47 }
50 void UnhandledError() { 48 void UnhandledError() { LOG(DFATAL) << "Unhandled error framing HTTP."; }
51 LOG(DFATAL) << "Unhandled error framing HTTP.";
52 }
53 void AppendToBody(const char* input, size_t size) { 49 void AppendToBody(const char* input, size_t size) {
54 body_.append(input, size); 50 body_.append(input, size);
55 } 51 }
56 bool done_framing() const { return done_framing_; } 52 bool done_framing() const { return done_framing_; }
57 const string& body() const { return body_; } 53 const string& body() const { return body_; }
58 54
59 private: 55 private:
60 bool done_framing_; 56 bool done_framing_;
61 string body_; 57 string body_;
62 }; 58 };
(...skipping 14 matching lines...) Expand all
77 return it->second; 73 return it->second;
78 } 74 }
79 75
80 void QuicInMemoryCache::AddSimpleResponse(StringPiece method, 76 void QuicInMemoryCache::AddSimpleResponse(StringPiece method,
81 StringPiece path, 77 StringPiece path,
82 StringPiece version, 78 StringPiece version,
83 StringPiece response_code, 79 StringPiece response_code,
84 StringPiece response_detail, 80 StringPiece response_detail,
85 StringPiece body) { 81 StringPiece body) {
86 BalsaHeaders request_headers, response_headers; 82 BalsaHeaders request_headers, response_headers;
87 request_headers.SetRequestFirstlineFromStringPieces(method, 83 request_headers.SetRequestFirstlineFromStringPieces(method, path, version);
88 path, 84 response_headers.SetRequestFirstlineFromStringPieces(
89 version); 85 version, response_code, response_detail);
90 response_headers.SetRequestFirstlineFromStringPieces(version,
91 response_code,
92 response_detail);
93 response_headers.AppendHeader("content-length", 86 response_headers.AppendHeader("content-length",
94 base::IntToString(body.length())); 87 base::IntToString(body.length()));
95 88
96 AddResponse(request_headers, response_headers, body); 89 AddResponse(request_headers, response_headers, body);
97 } 90 }
98 91
99 void QuicInMemoryCache::AddResponse(const BalsaHeaders& request_headers, 92 void QuicInMemoryCache::AddResponse(const BalsaHeaders& request_headers,
100 const BalsaHeaders& response_headers, 93 const BalsaHeaders& response_headers,
101 StringPiece response_body) { 94 StringPiece response_body) {
102 VLOG(1) << "Adding response for: " << GetKey(request_headers); 95 VLOG(1) << "Adding response for: " << GetKey(request_headers);
103 if (ContainsKey(responses_, GetKey(request_headers))) { 96 if (ContainsKey(responses_, GetKey(request_headers))) {
104 LOG(DFATAL) << "Response for given request already exists!"; 97 LOG(DFATAL) << "Response for given request already exists!";
105 return; 98 return;
106 } 99 }
107 Response* new_response = new Response(); 100 Response* new_response = new Response();
108 new_response->set_headers(response_headers); 101 new_response->set_headers(response_headers);
109 new_response->set_body(response_body); 102 new_response->set_body(response_body);
110 responses_[GetKey(request_headers)] = new_response; 103 responses_[GetKey(request_headers)] = new_response;
111 } 104 }
112 105
113 void QuicInMemoryCache::AddSpecialResponse(StringPiece method, 106 void QuicInMemoryCache::AddSpecialResponse(StringPiece method,
114 StringPiece path, 107 StringPiece path,
115 StringPiece version, 108 StringPiece version,
116 SpecialResponseType response_type) { 109 SpecialResponseType response_type) {
117 BalsaHeaders request_headers, response_headers; 110 BalsaHeaders request_headers, response_headers;
118 request_headers.SetRequestFirstlineFromStringPieces(method, 111 request_headers.SetRequestFirstlineFromStringPieces(method, path, version);
119 path,
120 version);
121 AddResponse(request_headers, response_headers, ""); 112 AddResponse(request_headers, response_headers, "");
122 responses_[GetKey(request_headers)]->response_type_ = response_type; 113 responses_[GetKey(request_headers)]->response_type_ = response_type;
123 } 114 }
124 115
125 QuicInMemoryCache::QuicInMemoryCache() { 116 QuicInMemoryCache::QuicInMemoryCache() {
126 Initialize(); 117 Initialize();
127 } 118 }
128 119
129 void QuicInMemoryCache::ResetForTests() { 120 void QuicInMemoryCache::ResetForTests() {
130 STLDeleteValues(&responses_); 121 STLDeleteValues(&responses_);
131 Initialize(); 122 Initialize();
132 } 123 }
133 124
134 void QuicInMemoryCache::Initialize() { 125 void QuicInMemoryCache::Initialize() {
135 // If there's no defined cache dir, we have no initialization to do. 126 // If there's no defined cache dir, we have no initialization to do.
136 if (FLAGS_quic_in_memory_cache_dir.empty()) { 127 if (FLAGS_quic_in_memory_cache_dir.empty()) {
137 VLOG(1) << "No cache directory found. Skipping initialization."; 128 VLOG(1) << "No cache directory found. Skipping initialization.";
138 return; 129 return;
139 } 130 }
140 VLOG(1) << "Attempting to initialize QuicInMemoryCache from directory: " 131 VLOG(1) << "Attempting to initialize QuicInMemoryCache from directory: "
141 << FLAGS_quic_in_memory_cache_dir; 132 << FLAGS_quic_in_memory_cache_dir;
142 133
143 FilePath directory(FLAGS_quic_in_memory_cache_dir); 134 FilePath directory(FLAGS_quic_in_memory_cache_dir);
144 base::FileEnumerator file_list(directory, 135 base::FileEnumerator file_list(directory, true, base::FileEnumerator::FILES);
145 true,
146 base::FileEnumerator::FILES);
147 136
148 FilePath file = file_list.Next(); 137 FilePath file = file_list.Next();
149 while (!file.empty()) { 138 while (!file.empty()) {
150 // Need to skip files in .svn directories 139 // Need to skip files in .svn directories
151 if (file.value().find("/.svn/") != std::string::npos) { 140 if (file.value().find("/.svn/") != std::string::npos) {
152 file = file_list.Next(); 141 file = file_list.Next();
153 continue; 142 continue;
154 } 143 }
155 144
156 BalsaHeaders request_headers, response_headers; 145 BalsaHeaders request_headers, response_headers;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 188 }
200 } 189 }
201 int path_start = base.find_first_of('/'); 190 int path_start = base.find_first_of('/');
202 DCHECK_LT(0, path_start); 191 DCHECK_LT(0, path_start);
203 StringPiece host(base.substr(0, path_start)); 192 StringPiece host(base.substr(0, path_start));
204 StringPiece path(base.substr(path_start)); 193 StringPiece path(base.substr(path_start));
205 if (path[path.length() - 1] == ',') { 194 if (path[path.length() - 1] == ',') {
206 path.remove_suffix(1); 195 path.remove_suffix(1);
207 } 196 }
208 // Set up request headers. Assume method is GET and protocol is HTTP/1.1. 197 // Set up request headers. Assume method is GET and protocol is HTTP/1.1.
209 request_headers.SetRequestFirstlineFromStringPieces("GET", 198 request_headers.SetRequestFirstlineFromStringPieces(
210 path, 199 "GET", path, "HTTP/1.1");
211 "HTTP/1.1");
212 request_headers.ReplaceOrAppendHeader("host", host); 200 request_headers.ReplaceOrAppendHeader("host", host);
213 201
214 VLOG(1) << "Inserting 'http://" << GetKey(request_headers) 202 VLOG(1) << "Inserting 'http://" << GetKey(request_headers)
215 << "' into QuicInMemoryCache."; 203 << "' into QuicInMemoryCache.";
216 204
217 AddResponse(request_headers, response_headers, caching_visitor.body()); 205 AddResponse(request_headers, response_headers, caching_visitor.body());
218 206
219 file = file_list.Next(); 207 file = file_list.Next();
220 } 208 }
221 } 209 }
(...skipping 13 matching lines...) Expand all
235 } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "https://")) { 223 } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "https://")) {
236 uri.remove_prefix(8); 224 uri.remove_prefix(8);
237 } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "http://")) { 225 } else if (StringPieceUtils::StartsWithIgnoreCase(uri, "http://")) {
238 uri.remove_prefix(7); 226 uri.remove_prefix(7);
239 } 227 }
240 return host.as_string() + uri.as_string(); 228 return host.as_string() + uri.as_string();
241 } 229 }
242 230
243 } // namespace tools 231 } // namespace tools
244 } // namespace net 232 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698