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

Side by Side Diff: net/http/disk_cache_based_quic_server_info.cc

Issue 427313002: Persist the server config that is received via kSCUP. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Keep disk cache entry open for multiple writes Created 6 years, 3 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
« no previous file with comments | « no previous file | net/quic/quic_crypto_client_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/http/disk_cache_based_quic_server_info.h" 5 #include "net/http/disk_cache_based_quic_server_info.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "net/base/completion_callback.h" 10 #include "net/base/completion_callback.h"
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 int DiskCacheBasedQuicServerInfo::DoReadComplete(int rv) { 207 int DiskCacheBasedQuicServerInfo::DoReadComplete(int rv) {
208 if (rv > 0) 208 if (rv > 0)
209 data_.assign(read_buffer_->data(), rv); 209 data_.assign(read_buffer_->data(), rv);
210 210
211 state_ = WAIT_FOR_DATA_READY_DONE; 211 state_ = WAIT_FOR_DATA_READY_DONE;
212 return OK; 212 return OK;
213 } 213 }
214 214
215 int DiskCacheBasedQuicServerInfo::DoWriteComplete(int rv) { 215 int DiskCacheBasedQuicServerInfo::DoWriteComplete(int rv) {
216 state_ = SET_DONE; 216 // Keep the entry open for future writes.
217 new_data_.clear();
218 state_ = NONE;
217 return OK; 219 return OK;
218 } 220 }
219 221
220 int DiskCacheBasedQuicServerInfo::DoCreateOrOpenComplete(int rv) { 222 int DiskCacheBasedQuicServerInfo::DoCreateOrOpenComplete(int rv) {
221 if (rv != OK) { 223 if (rv != OK) {
222 state_ = SET_DONE; 224 state_ = SET_DONE;
223 } else { 225 } else {
224 entry_ = data_shim_->entry; 226 if (!entry_)
227 entry_ = data_shim_->entry;
rjshade 2014/09/18 19:42:51 Chromium style guide doesn't require {} around sin
Ryan Hamilton 2014/09/18 19:52:52 Nope; Chrome's unofficial net/ style guide prohibi
225 state_ = WRITE; 228 state_ = WRITE;
226 } 229 }
227 return OK; 230 return OK;
228 } 231 }
229 232
230 int DiskCacheBasedQuicServerInfo::DoGetBackend() { 233 int DiskCacheBasedQuicServerInfo::DoGetBackend() {
231 state_ = GET_BACKEND_COMPLETE; 234 state_ = GET_BACKEND_COMPLETE;
232 return http_cache_->GetBackend(&data_shim_->backend, io_callback_); 235 return http_cache_->GetBackend(&data_shim_->backend, io_callback_);
233 } 236 }
234 237
(...skipping 22 matching lines...) Expand all
257 260
258 return entry_->WriteData(0 /* index */, 261 return entry_->WriteData(0 /* index */,
259 0 /* offset */, 262 0 /* offset */,
260 write_buffer_.get(), 263 write_buffer_.get(),
261 new_data_.size(), 264 new_data_.size(),
262 io_callback_, 265 io_callback_,
263 true /* truncate */); 266 true /* truncate */);
264 } 267 }
265 268
266 int DiskCacheBasedQuicServerInfo::DoCreateOrOpen() { 269 int DiskCacheBasedQuicServerInfo::DoCreateOrOpen() {
267 DCHECK(entry_ == NULL);
268 state_ = CREATE_OR_OPEN_COMPLETE; 270 state_ = CREATE_OR_OPEN_COMPLETE;
271 if (entry_)
272 return OK;
273
269 if (found_entry_) { 274 if (found_entry_) {
270 return backend_->OpenEntry(key(), &data_shim_->entry, io_callback_); 275 return backend_->OpenEntry(key(), &data_shim_->entry, io_callback_);
271 } 276 }
272 277
273 return backend_->CreateEntry(key(), &data_shim_->entry, io_callback_); 278 return backend_->CreateEntry(key(), &data_shim_->entry, io_callback_);
274 } 279 }
275 280
276 int DiskCacheBasedQuicServerInfo::DoWaitForDataReadyDone() { 281 int DiskCacheBasedQuicServerInfo::DoWaitForDataReadyDone() {
277 DCHECK(!ready_); 282 DCHECK(!ready_);
278 state_ = NONE; 283 state_ = NONE;
(...skipping 10 matching lines...) Expand all
289 int DiskCacheBasedQuicServerInfo::DoSetDone() { 294 int DiskCacheBasedQuicServerInfo::DoSetDone() {
290 if (entry_) 295 if (entry_)
291 entry_->Close(); 296 entry_->Close();
292 entry_ = NULL; 297 entry_ = NULL;
293 new_data_.clear(); 298 new_data_.clear();
294 state_ = NONE; 299 state_ = NONE;
295 return OK; 300 return OK;
296 } 301 }
297 302
298 } // namespace net 303 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/quic/quic_crypto_client_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698