| Index: net/disk_cache/in_flight_backend_io.cc
|
| diff --git a/net/disk_cache/in_flight_backend_io.cc b/net/disk_cache/in_flight_backend_io.cc
|
| index b99d62760a5c29eb4bf40f3e76ff6fec1dacbf32..eb42b2a645a19a945e8d3115dc5cf56a216d06af 100644
|
| --- a/net/disk_cache/in_flight_backend_io.cc
|
| +++ b/net/disk_cache/in_flight_backend_io.cc
|
| @@ -16,7 +16,21 @@ namespace disk_cache {
|
|
|
| BackendIO::BackendIO(InFlightIO* controller, BackendImpl* backend,
|
| net::OldCompletionCallback* callback)
|
| - : BackgroundIO(controller), backend_(backend), callback_(callback),
|
| + : BackgroundIO(controller),
|
| + backend_(backend),
|
| + old_callback_(callback),
|
| + operation_(OP_NONE),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(
|
| + my_callback_(this, &BackendIO::OnIOComplete)) {
|
| + start_time_ = base::TimeTicks::Now();
|
| +}
|
| +
|
| +BackendIO::BackendIO(InFlightIO* controller, BackendImpl* backend,
|
| + const net::CompletionCallback& callback)
|
| + : BackgroundIO(controller),
|
| + backend_(backend),
|
| + old_callback_(NULL),
|
| + callback_(callback),
|
| operation_(OP_NONE),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(
|
| my_callback_(this, &BackendIO::OnIOComplete)) {
|
| @@ -333,6 +347,13 @@ void InFlightBackendIO::DoomAllEntries(OldCompletionCallback* callback) {
|
| PostOperation(operation);
|
| }
|
|
|
| +void InFlightBackendIO::DoomAllEntries(
|
| + const net::CompletionCallback& callback) {
|
| + scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
|
| + operation->DoomAllEntries();
|
| + PostOperation(operation);
|
| +}
|
| +
|
| void InFlightBackendIO::DoomEntriesBetween(const base::Time initial_time,
|
| const base::Time end_time,
|
| OldCompletionCallback* callback) {
|
| @@ -341,6 +362,14 @@ void InFlightBackendIO::DoomEntriesBetween(const base::Time initial_time,
|
| PostOperation(operation);
|
| }
|
|
|
| +void InFlightBackendIO::DoomEntriesBetween(const base::Time initial_time,
|
| + const base::Time end_time,
|
| + const net::CompletionCallback& callback) {
|
| + scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
|
| + operation->DoomEntriesBetween(initial_time, end_time);
|
| + PostOperation(operation);
|
| +}
|
| +
|
| void InFlightBackendIO::DoomEntriesSince(const base::Time initial_time,
|
| OldCompletionCallback* callback) {
|
| scoped_refptr<BackendIO> operation(new BackendIO(this, backend_, callback));
|
| @@ -464,8 +493,10 @@ void InFlightBackendIO::OnOperationComplete(BackgroundIO* operation,
|
| CACHE_UMA(TIMES, "TotalIOTime", 0, op->ElapsedTime());
|
| }
|
|
|
| - if (op->callback() && (!cancel || op->IsEntryOperation()))
|
| - op->callback()->Run(op->result());
|
| + if (op->old_callback() && (!cancel || op->IsEntryOperation()))
|
| + op->old_callback()->Run(op->result());
|
| + else if (!op->callback().is_null() && (!cancel || op->IsEntryOperation()))
|
| + op->callback().Run(op->result());
|
| }
|
|
|
| void InFlightBackendIO::PostOperation(BackendIO* operation) {
|
|
|