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

Side by Side Diff: net/disk_cache/blockfile/in_flight_backend_io.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/disk_cache/blockfile/in_flight_backend_io.h" 5 #include "net/disk_cache/blockfile/in_flight_backend_io.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "net/base/net_errors.h" 11 #include "net/base/net_errors.h"
12 #include "net/disk_cache/blockfile/backend_impl.h" 12 #include "net/disk_cache/blockfile/backend_impl.h"
13 #include "net/disk_cache/blockfile/entry_impl.h" 13 #include "net/disk_cache/blockfile/entry_impl.h"
14 #include "net/disk_cache/blockfile/histogram_macros.h" 14 #include "net/disk_cache/blockfile/histogram_macros.h"
15 15
16 // Provide a BackendImpl object to macros from histogram_macros.h. 16 // Provide a BackendImpl object to macros from histogram_macros.h.
17 #define CACHE_UMA_BACKEND_IMPL_OBJ backend_ 17 #define CACHE_UMA_BACKEND_IMPL_OBJ backend_
18 18
19 namespace disk_cache { 19 namespace disk_cache {
20 20
21 BackendIO::BackendIO(InFlightIO* controller, BackendImpl* backend, 21 BackendIO::BackendIO(InFlightIO* controller,
22 BackendImpl* backend,
22 const net::CompletionCallback& callback) 23 const net::CompletionCallback& callback)
23 : BackgroundIO(controller), 24 : BackgroundIO(controller),
24 backend_(backend), 25 backend_(backend),
25 callback_(callback), 26 callback_(callback),
26 operation_(OP_NONE), 27 operation_(OP_NONE),
27 entry_ptr_(NULL), 28 entry_ptr_(NULL),
28 iter_ptr_(NULL), 29 iter_ptr_(NULL),
29 iter_(NULL), 30 iter_(NULL),
30 entry_(NULL), 31 entry_(NULL),
31 index_(0), 32 index_(0),
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 150
150 void BackendIO::FlushQueue() { 151 void BackendIO::FlushQueue() {
151 operation_ = OP_FLUSH_QUEUE; 152 operation_ = OP_FLUSH_QUEUE;
152 } 153 }
153 154
154 void BackendIO::RunTask(const base::Closure& task) { 155 void BackendIO::RunTask(const base::Closure& task) {
155 operation_ = OP_RUN_TASK; 156 operation_ = OP_RUN_TASK;
156 task_ = task; 157 task_ = task;
157 } 158 }
158 159
159 void BackendIO::ReadData(EntryImpl* entry, int index, int offset, 160 void BackendIO::ReadData(EntryImpl* entry,
160 net::IOBuffer* buf, int buf_len) { 161 int index,
162 int offset,
163 net::IOBuffer* buf,
164 int buf_len) {
161 operation_ = OP_READ; 165 operation_ = OP_READ;
162 entry_ = entry; 166 entry_ = entry;
163 index_ = index; 167 index_ = index;
164 offset_ = offset; 168 offset_ = offset;
165 buf_ = buf; 169 buf_ = buf;
166 buf_len_ = buf_len; 170 buf_len_ = buf_len;
167 } 171 }
168 172
169 void BackendIO::WriteData(EntryImpl* entry, int index, int offset, 173 void BackendIO::WriteData(EntryImpl* entry,
170 net::IOBuffer* buf, int buf_len, bool truncate) { 174 int index,
175 int offset,
176 net::IOBuffer* buf,
177 int buf_len,
178 bool truncate) {
171 operation_ = OP_WRITE; 179 operation_ = OP_WRITE;
172 entry_ = entry; 180 entry_ = entry;
173 index_ = index; 181 index_ = index;
174 offset_ = offset; 182 offset_ = offset;
175 buf_ = buf; 183 buf_ = buf;
176 buf_len_ = buf_len; 184 buf_len_ = buf_len;
177 truncate_ = truncate; 185 truncate_ = truncate;
178 } 186 }
179 187
180 void BackendIO::ReadSparseData(EntryImpl* entry, int64 offset, 188 void BackendIO::ReadSparseData(EntryImpl* entry,
181 net::IOBuffer* buf, int buf_len) { 189 int64 offset,
190 net::IOBuffer* buf,
191 int buf_len) {
182 operation_ = OP_READ_SPARSE; 192 operation_ = OP_READ_SPARSE;
183 entry_ = entry; 193 entry_ = entry;
184 offset64_ = offset; 194 offset64_ = offset;
185 buf_ = buf; 195 buf_ = buf;
186 buf_len_ = buf_len; 196 buf_len_ = buf_len;
187 } 197 }
188 198
189 void BackendIO::WriteSparseData(EntryImpl* entry, int64 offset, 199 void BackendIO::WriteSparseData(EntryImpl* entry,
190 net::IOBuffer* buf, int buf_len) { 200 int64 offset,
201 net::IOBuffer* buf,
202 int buf_len) {
191 operation_ = OP_WRITE_SPARSE; 203 operation_ = OP_WRITE_SPARSE;
192 entry_ = entry; 204 entry_ = entry;
193 offset64_ = offset; 205 offset64_ = offset;
194 buf_ = buf; 206 buf_ = buf;
195 buf_len_ = buf_len; 207 buf_len_ = buf_len;
196 } 208 }
197 209
198 void BackendIO::GetAvailableRange(EntryImpl* entry, int64 offset, int len, 210 void BackendIO::GetAvailableRange(EntryImpl* entry,
211 int64 offset,
212 int len,
199 int64* start) { 213 int64* start) {
200 operation_ = OP_GET_RANGE; 214 operation_ = OP_GET_RANGE;
201 entry_ = entry; 215 entry_ = entry;
202 offset64_ = offset; 216 offset64_ = offset;
203 buf_len_ = len; 217 buf_len_ = len;
204 start_ = start; 218 start_ = start;
205 } 219 }
206 220
207 void BackendIO::CancelSparseIO(EntryImpl* entry) { 221 void BackendIO::CancelSparseIO(EntryImpl* entry) {
208 operation_ = OP_CANCEL_IO; 222 operation_ = OP_CANCEL_IO;
209 entry_ = entry; 223 entry_ = entry;
210 } 224 }
211 225
212 void BackendIO::ReadyForSparseIO(EntryImpl* entry) { 226 void BackendIO::ReadyForSparseIO(EntryImpl* entry) {
213 operation_ = OP_IS_READY; 227 operation_ = OP_IS_READY;
214 entry_ = entry; 228 entry_ = entry;
215 } 229 }
216 230
217 BackendIO::~BackendIO() {} 231 BackendIO::~BackendIO() {
232 }
218 233
219 bool BackendIO::ReturnsEntry() { 234 bool BackendIO::ReturnsEntry() {
220 return (operation_ == OP_OPEN || operation_ == OP_CREATE || 235 return (operation_ == OP_OPEN || operation_ == OP_CREATE ||
221 operation_ == OP_OPEN_NEXT || operation_ == OP_OPEN_PREV); 236 operation_ == OP_OPEN_NEXT || operation_ == OP_OPEN_PREV);
222 } 237 }
223 238
224 base::TimeDelta BackendIO::ElapsedTime() const { 239 base::TimeDelta BackendIO::ElapsedTime() const {
225 return base::TimeTicks::Now() - start_time_; 240 return base::TimeTicks::Now() - start_time_;
226 } 241 }
227 242
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 } 299 }
285 DCHECK_NE(net::ERR_IO_PENDING, result_); 300 DCHECK_NE(net::ERR_IO_PENDING, result_);
286 NotifyController(); 301 NotifyController();
287 } 302 }
288 303
289 // Runs on the background thread. 304 // Runs on the background thread.
290 void BackendIO::ExecuteEntryOperation() { 305 void BackendIO::ExecuteEntryOperation() {
291 switch (operation_) { 306 switch (operation_) {
292 case OP_READ: 307 case OP_READ:
293 result_ = 308 result_ =
294 entry_->ReadDataImpl(index_, offset_, buf_.get(), buf_len_, 309 entry_->ReadDataImpl(index_,
310 offset_,
311 buf_.get(),
312 buf_len_,
295 base::Bind(&BackendIO::OnIOComplete, this)); 313 base::Bind(&BackendIO::OnIOComplete, this));
296 break; 314 break;
297 case OP_WRITE: 315 case OP_WRITE:
298 result_ = 316 result_ =
299 entry_->WriteDataImpl(index_, offset_, buf_.get(), buf_len_, 317 entry_->WriteDataImpl(index_,
318 offset_,
319 buf_.get(),
320 buf_len_,
300 base::Bind(&BackendIO::OnIOComplete, this), 321 base::Bind(&BackendIO::OnIOComplete, this),
301 truncate_); 322 truncate_);
302 break; 323 break;
303 case OP_READ_SPARSE: 324 case OP_READ_SPARSE:
304 result_ = entry_->ReadSparseDataImpl( 325 result_ = entry_->ReadSparseDataImpl(
305 offset64_, buf_.get(), buf_len_, 326 offset64_,
306 base::Bind(&BackendIO::OnIOComplete, this)); 327 buf_.get(),
328 buf_len_,
329 base::Bind(&BackendIO::OnIOComplete, this));
307 break; 330 break;
308 case OP_WRITE_SPARSE: 331 case OP_WRITE_SPARSE:
309 result_ = entry_->WriteSparseDataImpl( 332 result_ = entry_->WriteSparseDataImpl(
310 offset64_, buf_.get(), buf_len_, 333 offset64_,
311 base::Bind(&BackendIO::OnIOComplete, this)); 334 buf_.get(),
335 buf_len_,
336 base::Bind(&BackendIO::OnIOComplete, this));
312 break; 337 break;
313 case OP_GET_RANGE: 338 case OP_GET_RANGE:
314 result_ = entry_->GetAvailableRangeImpl(offset64_, buf_len_, start_); 339 result_ = entry_->GetAvailableRangeImpl(offset64_, buf_len_, start_);
315 break; 340 break;
316 case OP_CANCEL_IO: 341 case OP_CANCEL_IO:
317 entry_->CancelSparseIOImpl(); 342 entry_->CancelSparseIOImpl();
318 result_ = net::OK; 343 result_ = net::OK;
319 break; 344 break;
320 case OP_IS_READY: 345 case OP_IS_READY:
321 result_ = entry_->ReadyForSparseIOImpl( 346 result_ = entry_->ReadyForSparseIOImpl(
322 base::Bind(&BackendIO::OnIOComplete, this)); 347 base::Bind(&BackendIO::OnIOComplete, this));
323 break; 348 break;
324 default: 349 default:
325 NOTREACHED() << "Invalid Operation"; 350 NOTREACHED() << "Invalid Operation";
326 result_ = net::ERR_UNEXPECTED; 351 result_ = net::ERR_UNEXPECTED;
327 } 352 }
328 buf_ = NULL; 353 buf_ = NULL;
329 if (result_ != net::ERR_IO_PENDING) 354 if (result_ != net::ERR_IO_PENDING)
330 NotifyController(); 355 NotifyController();
331 } 356 }
332 357
333 InFlightBackendIO::InFlightBackendIO(BackendImpl* backend, 358 InFlightBackendIO::InFlightBackendIO(BackendImpl* backend,
334 base::MessageLoopProxy* background_thread) 359 base::MessageLoopProxy* background_thread)
335 : backend_(backend), 360 : backend_(backend),
336 background_thread_(background_thread), 361 background_thread_(background_thread),
337 ptr_factory_(this) { 362 ptr_factory_(this) {
338 } 363 }
339 364
340 InFlightBackendIO::~InFlightBackendIO() { 365 InFlightBackendIO::~InFlightBackendIO() {
341 } 366 }
342 367
343 void InFlightBackendIO::Init(const net::CompletionCallback& callback) { 368 void InFlightBackendIO::Init(const net::CompletionCallback& callback) {
344 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 369 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
345 operation->Init(); 370 operation->Init();
346 PostOperation(operation.get()); 371 PostOperation(operation.get());
347 } 372 }
348 373
349 void InFlightBackendIO::OpenEntry(const std::string& key, Entry** entry, 374 void InFlightBackendIO::OpenEntry(const std::string& key,
375 Entry** entry,
350 const net::CompletionCallback& callback) { 376 const net::CompletionCallback& callback) {
351 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 377 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
352 operation->OpenEntry(key, entry); 378 operation->OpenEntry(key, entry);
353 PostOperation(operation.get()); 379 PostOperation(operation.get());
354 } 380 }
355 381
356 void InFlightBackendIO::CreateEntry(const std::string& key, Entry** entry, 382 void InFlightBackendIO::CreateEntry(const std::string& key,
383 Entry** entry,
357 const net::CompletionCallback& callback) { 384 const net::CompletionCallback& callback) {
358 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 385 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
359 operation->CreateEntry(key, entry); 386 operation->CreateEntry(key, entry);
360 PostOperation(operation.get()); 387 PostOperation(operation.get());
361 } 388 }
362 389
363 void InFlightBackendIO::DoomEntry(const std::string& key, 390 void InFlightBackendIO::DoomEntry(const std::string& key,
364 const net::CompletionCallback& callback) { 391 const net::CompletionCallback& callback) {
365 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 392 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
366 operation->DoomEntry(key); 393 operation->DoomEntry(key);
367 PostOperation(operation.get()); 394 PostOperation(operation.get());
368 } 395 }
369 396
370 void InFlightBackendIO::DoomAllEntries( 397 void InFlightBackendIO::DoomAllEntries(
371 const net::CompletionCallback& callback) { 398 const net::CompletionCallback& callback) {
372 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 399 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
373 operation->DoomAllEntries(); 400 operation->DoomAllEntries();
374 PostOperation(operation.get()); 401 PostOperation(operation.get());
375 } 402 }
376 403
377 void InFlightBackendIO::DoomEntriesBetween(const base::Time initial_time, 404 void InFlightBackendIO::DoomEntriesBetween(
378 const base::Time end_time, 405 const base::Time initial_time,
379 const net::CompletionCallback& callback) { 406 const base::Time end_time,
407 const net::CompletionCallback& callback) {
380 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 408 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
381 operation->DoomEntriesBetween(initial_time, end_time); 409 operation->DoomEntriesBetween(initial_time, end_time);
382 PostOperation(operation.get()); 410 PostOperation(operation.get());
383 } 411 }
384 412
385 void InFlightBackendIO::DoomEntriesSince( 413 void InFlightBackendIO::DoomEntriesSince(
386 const base::Time initial_time, const net::CompletionCallback& callback) { 414 const base::Time initial_time,
415 const net::CompletionCallback& callback) {
387 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 416 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
388 operation->DoomEntriesSince(initial_time); 417 operation->DoomEntriesSince(initial_time);
389 PostOperation(operation.get()); 418 PostOperation(operation.get());
390 } 419 }
391 420
392 void InFlightBackendIO::OpenNextEntry(void** iter, Entry** next_entry, 421 void InFlightBackendIO::OpenNextEntry(void** iter,
422 Entry** next_entry,
393 const net::CompletionCallback& callback) { 423 const net::CompletionCallback& callback) {
394 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 424 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
395 operation->OpenNextEntry(iter, next_entry); 425 operation->OpenNextEntry(iter, next_entry);
396 PostOperation(operation.get()); 426 PostOperation(operation.get());
397 } 427 }
398 428
399 void InFlightBackendIO::OpenPrevEntry(void** iter, Entry** prev_entry, 429 void InFlightBackendIO::OpenPrevEntry(void** iter,
430 Entry** prev_entry,
400 const net::CompletionCallback& callback) { 431 const net::CompletionCallback& callback) {
401 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 432 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
402 operation->OpenPrevEntry(iter, prev_entry); 433 operation->OpenPrevEntry(iter, prev_entry);
403 PostOperation(operation.get()); 434 PostOperation(operation.get());
404 } 435 }
405 436
406 void InFlightBackendIO::EndEnumeration(void* iterator) { 437 void InFlightBackendIO::EndEnumeration(void* iterator) {
407 scoped_refptr<BackendIO> operation( 438 scoped_refptr<BackendIO> operation(
408 new BackendIO(this, backend_, net::CompletionCallback())); 439 new BackendIO(this, backend_, net::CompletionCallback()));
409 operation->EndEnumeration(iterator); 440 operation->EndEnumeration(iterator);
(...skipping 20 matching lines...) Expand all
430 operation->DoomEntryImpl(entry); 461 operation->DoomEntryImpl(entry);
431 PostOperation(operation.get()); 462 PostOperation(operation.get());
432 } 463 }
433 464
434 void InFlightBackendIO::FlushQueue(const net::CompletionCallback& callback) { 465 void InFlightBackendIO::FlushQueue(const net::CompletionCallback& callback) {
435 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 466 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
436 operation->FlushQueue(); 467 operation->FlushQueue();
437 PostOperation(operation.get()); 468 PostOperation(operation.get());
438 } 469 }
439 470
440 void InFlightBackendIO::RunTask( 471 void InFlightBackendIO::RunTask(const base::Closure& task,
441 const base::Closure& task, const net::CompletionCallback& callback) { 472 const net::CompletionCallback& callback) {
442 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 473 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
443 operation->RunTask(task); 474 operation->RunTask(task);
444 PostOperation(operation.get()); 475 PostOperation(operation.get());
445 } 476 }
446 477
447 void InFlightBackendIO::ReadData(EntryImpl* entry, int index, int offset, 478 void InFlightBackendIO::ReadData(EntryImpl* entry,
448 net::IOBuffer* buf, int buf_len, 479 int index,
480 int offset,
481 net::IOBuffer* buf,
482 int buf_len,
449 const net::CompletionCallback& callback) { 483 const net::CompletionCallback& callback) {
450 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 484 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
451 operation->ReadData(entry, index, offset, buf, buf_len); 485 operation->ReadData(entry, index, offset, buf, buf_len);
452 PostOperation(operation.get()); 486 PostOperation(operation.get());
453 } 487 }
454 488
455 void InFlightBackendIO::WriteData(EntryImpl* entry, int index, int offset, 489 void InFlightBackendIO::WriteData(EntryImpl* entry,
456 net::IOBuffer* buf, int buf_len, 490 int index,
491 int offset,
492 net::IOBuffer* buf,
493 int buf_len,
457 bool truncate, 494 bool truncate,
458 const net::CompletionCallback& callback) { 495 const net::CompletionCallback& callback) {
459 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 496 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
460 operation->WriteData(entry, index, offset, buf, buf_len, truncate); 497 operation->WriteData(entry, index, offset, buf, buf_len, truncate);
461 PostOperation(operation.get()); 498 PostOperation(operation.get());
462 } 499 }
463 500
464 void InFlightBackendIO::ReadSparseData( 501 void InFlightBackendIO::ReadSparseData(
465 EntryImpl* entry, int64 offset, net::IOBuffer* buf, int buf_len, 502 EntryImpl* entry,
503 int64 offset,
504 net::IOBuffer* buf,
505 int buf_len,
466 const net::CompletionCallback& callback) { 506 const net::CompletionCallback& callback) {
467 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 507 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
468 operation->ReadSparseData(entry, offset, buf, buf_len); 508 operation->ReadSparseData(entry, offset, buf, buf_len);
469 PostOperation(operation.get()); 509 PostOperation(operation.get());
470 } 510 }
471 511
472 void InFlightBackendIO::WriteSparseData( 512 void InFlightBackendIO::WriteSparseData(
473 EntryImpl* entry, int64 offset, net::IOBuffer* buf, int buf_len, 513 EntryImpl* entry,
514 int64 offset,
515 net::IOBuffer* buf,
516 int buf_len,
474 const net::CompletionCallback& callback) { 517 const net::CompletionCallback& callback) {
475 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 518 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
476 operation->WriteSparseData(entry, offset, buf, buf_len); 519 operation->WriteSparseData(entry, offset, buf, buf_len);
477 PostOperation(operation.get()); 520 PostOperation(operation.get());
478 } 521 }
479 522
480 void InFlightBackendIO::GetAvailableRange( 523 void InFlightBackendIO::GetAvailableRange(
481 EntryImpl* entry, int64 offset, int len, int64* start, 524 EntryImpl* entry,
525 int64 offset,
526 int len,
527 int64* start,
482 const net::CompletionCallback& callback) { 528 const net::CompletionCallback& callback) {
483 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 529 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
484 operation->GetAvailableRange(entry, offset, len, start); 530 operation->GetAvailableRange(entry, offset, len, start);
485 PostOperation(operation.get()); 531 PostOperation(operation.get());
486 } 532 }
487 533
488 void InFlightBackendIO::CancelSparseIO(EntryImpl* entry) { 534 void InFlightBackendIO::CancelSparseIO(EntryImpl* entry) {
489 scoped_refptr<BackendIO> operation( 535 scoped_refptr<BackendIO> operation(
490 new BackendIO(this, backend_, net::CompletionCallback())); 536 new BackendIO(this, backend_, net::CompletionCallback()));
491 operation->CancelSparseIO(entry); 537 operation->CancelSparseIO(entry);
492 PostOperation(operation.get()); 538 PostOperation(operation.get());
493 } 539 }
494 540
495 void InFlightBackendIO::ReadyForSparseIO( 541 void InFlightBackendIO::ReadyForSparseIO(
496 EntryImpl* entry, const net::CompletionCallback& callback) { 542 EntryImpl* entry,
543 const net::CompletionCallback& callback) {
497 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback)); 544 scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
498 operation->ReadyForSparseIO(entry); 545 operation->ReadyForSparseIO(entry);
499 PostOperation(operation.get()); 546 PostOperation(operation.get());
500 } 547 }
501 548
502 void InFlightBackendIO::WaitForPendingIO() { 549 void InFlightBackendIO::WaitForPendingIO() {
503 InFlightIO::WaitForPendingIO(); 550 InFlightIO::WaitForPendingIO();
504 } 551 }
505 552
506 void InFlightBackendIO::OnOperationComplete(BackgroundIO* operation, 553 void InFlightBackendIO::OnOperationComplete(BackgroundIO* operation,
507 bool cancel) { 554 bool cancel) {
508 BackendIO* op = static_cast<BackendIO*>(operation); 555 BackendIO* op = static_cast<BackendIO*>(operation);
509 op->OnDone(cancel); 556 op->OnDone(cancel);
510 557
511 if (!op->callback().is_null() && (!cancel || op->IsEntryOperation())) 558 if (!op->callback().is_null() && (!cancel || op->IsEntryOperation()))
512 op->callback().Run(op->result()); 559 op->callback().Run(op->result());
513 } 560 }
514 561
515 void InFlightBackendIO::PostOperation(BackendIO* operation) { 562 void InFlightBackendIO::PostOperation(BackendIO* operation) {
516 background_thread_->PostTask(FROM_HERE, 563 background_thread_->PostTask(
517 base::Bind(&BackendIO::ExecuteOperation, operation)); 564 FROM_HERE, base::Bind(&BackendIO::ExecuteOperation, operation));
518 OnOperationPosted(operation); 565 OnOperationPosted(operation);
519 } 566 }
520 567
521 base::WeakPtr<InFlightBackendIO> InFlightBackendIO::GetWeakPtr() { 568 base::WeakPtr<InFlightBackendIO> InFlightBackendIO::GetWeakPtr() {
522 return ptr_factory_.GetWeakPtr(); 569 return ptr_factory_.GetWeakPtr();
523 } 570 }
524 571
525 } // namespace 572 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698