Index: webkit/appcache/appcache_disk_cache.h |
diff --git a/webkit/appcache/appcache_disk_cache.h b/webkit/appcache/appcache_disk_cache.h |
index 069127c40d3c859658b42c1a8e1609d6e07b402b..35fa6424a2c97468af7342e06f7f5b5f563838aa 100644 |
--- a/webkit/appcache/appcache_disk_cache.h |
+++ b/webkit/appcache/appcache_disk_cache.h |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -45,23 +45,9 @@ class APPCACHE_EXPORT AppCacheDiskCache |
const net::CompletionCallback& callback) OVERRIDE; |
private: |
+ struct CreateBackendDataShim; |
class EntryImpl; |
- class CreateBackendCallback |
- : public net::CancelableOldCompletionCallback<AppCacheDiskCache> { |
- public: |
- typedef net::CancelableOldCompletionCallback<AppCacheDiskCache> BaseClass; |
- CreateBackendCallback(AppCacheDiskCache* object, |
- void (AppCacheDiskCache::* method)(int)) |
- : BaseClass(object, method), backend_ptr_(NULL) {} |
- |
- disk_cache::Backend* backend_ptr_; // Accessed directly. |
- private: |
- virtual ~CreateBackendCallback() { |
- delete backend_ptr_; |
- } |
- }; |
- |
// PendingCalls allow CreateEntry, OpenEntry, and DoomEntry to be called |
// immediately after construction, without waiting for the |
// underlying disk_cache::Backend to be fully constructed. Early |
@@ -100,19 +86,19 @@ class APPCACHE_EXPORT AppCacheDiskCache |
typedef std::set<ActiveCall*> ActiveCalls; |
bool is_initializing() const { |
- return create_backend_callback_.get() != NULL; |
+ return !create_backend_callback_.IsCancelled(); |
} |
disk_cache::Backend* disk_cache() { return disk_cache_.get(); } |
int Init(net::CacheType cache_type, const FilePath& directory, |
int cache_size, bool force, base::MessageLoopProxy* cache_thread, |
const net::CompletionCallback& callback); |
- void OnCreateBackendComplete(int rv); |
+ void OnCreateBackendComplete(disk_cache::Backend** backend, int rv); |
void AddActiveCall(ActiveCall* call) { active_calls_.insert(call); } |
void RemoveActiveCall(ActiveCall* call) { active_calls_.erase(call); } |
bool is_disabled_; |
net::CompletionCallback init_callback_; |
- scoped_refptr<CreateBackendCallback> create_backend_callback_; |
+ net::CancelableCompletionCallback create_backend_callback_; |
PendingCalls pending_calls_; |
ActiveCalls active_calls_; |
scoped_ptr<disk_cache::Backend> disk_cache_; |