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

Side by Side Diff: webkit/appcache/appcache_storage_impl.h

Issue 2249005: AppCache: Use a dedicated thread for the disk cache. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Bound to IO thread Created 10 years, 6 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 | « webkit/appcache/appcache_service.cc ('k') | webkit/appcache/appcache_storage_impl.cc » ('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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef WEBKIT_APPCACHE_APPCACHE_STORAGE_IMPL_H_ 5 #ifndef WEBKIT_APPCACHE_APPCACHE_STORAGE_IMPL_H_
6 #define WEBKIT_APPCACHE_APPCACHE_STORAGE_IMPL_H_ 6 #define WEBKIT_APPCACHE_APPCACHE_STORAGE_IMPL_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/file_path.h" 13 #include "base/file_path.h"
14 #include "base/message_loop_proxy.h"
14 #include "base/task.h" 15 #include "base/task.h"
15 #include "webkit/appcache/appcache_database.h" 16 #include "webkit/appcache/appcache_database.h"
16 #include "webkit/appcache/appcache_disk_cache.h" 17 #include "webkit/appcache/appcache_disk_cache.h"
17 #include "webkit/appcache/appcache_storage.h" 18 #include "webkit/appcache/appcache_storage.h"
18 19
19 namespace appcache { 20 namespace appcache {
20 21
21 class AppCacheStorageImpl : public AppCacheStorage { 22 class AppCacheStorageImpl : public AppCacheStorage {
22 public: 23 public:
23 explicit AppCacheStorageImpl(AppCacheService* service); 24 explicit AppCacheStorageImpl(AppCacheService* service);
24 virtual ~AppCacheStorageImpl(); 25 virtual ~AppCacheStorageImpl();
25 26
26 void Initialize(const FilePath& cache_directory); 27 void Initialize(const FilePath& cache_directory,
28 base::MessageLoopProxy* cache_thread);
27 void Disable(); 29 void Disable();
28 bool is_disabled() const { return is_disabled_; } 30 bool is_disabled() const { return is_disabled_; }
29 31
30 // AppCacheStorage methods, see the base class for doc comments. 32 // AppCacheStorage methods, see the base class for doc comments.
31 virtual void GetAllInfo(Delegate* delegate); 33 virtual void GetAllInfo(Delegate* delegate);
32 virtual void LoadCache(int64 id, Delegate* delegate); 34 virtual void LoadCache(int64 id, Delegate* delegate);
33 virtual void LoadOrCreateGroup(const GURL& manifest_url, Delegate* delegate); 35 virtual void LoadOrCreateGroup(const GURL& manifest_url, Delegate* delegate);
34 virtual void StoreGroupAndNewestCache( 36 virtual void StoreGroupAndNewestCache(
35 AppCacheGroup* group, AppCache* newest_cache, Delegate* delegate); 37 AppCacheGroup* group, AppCache* newest_cache, Delegate* delegate);
36 virtual void FindResponseForMainRequest(const GURL& url, Delegate* delegate); 38 virtual void FindResponseForMainRequest(const GURL& url, Delegate* delegate);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 108
107 void CheckPolicyAndCallOnMainResponseFound( 109 void CheckPolicyAndCallOnMainResponseFound(
108 DelegateReferenceVector* delegates, const GURL& url, 110 DelegateReferenceVector* delegates, const GURL& url,
109 const AppCacheEntry& entry, const AppCacheEntry& fallback_entry, 111 const AppCacheEntry& entry, const AppCacheEntry& fallback_entry,
110 int64 cache_id, const GURL& manifest_url); 112 int64 cache_id, const GURL& manifest_url);
111 113
112 AppCacheDiskCache* disk_cache(); 114 AppCacheDiskCache* disk_cache();
113 115
114 // The directory in which we place files in the file system. 116 // The directory in which we place files in the file system.
115 FilePath cache_directory_; 117 FilePath cache_directory_;
118 scoped_refptr<base::MessageLoopProxy> cache_thread_;
116 bool is_incognito_; 119 bool is_incognito_;
117 120
118 // Structures to keep track of DatabaseTasks that are in-flight. 121 // Structures to keep track of DatabaseTasks that are in-flight.
119 DatabaseTaskQueue scheduled_database_tasks_; 122 DatabaseTaskQueue scheduled_database_tasks_;
120 PendingCacheLoads pending_cache_loads_; 123 PendingCacheLoads pending_cache_loads_;
121 PendingGroupLoads pending_group_loads_; 124 PendingGroupLoads pending_group_loads_;
122 PendingForeignMarkings pending_foreign_markings_; 125 PendingForeignMarkings pending_foreign_markings_;
123 126
124 // Structures to keep track of lazy response deletion. 127 // Structures to keep track of lazy response deletion.
125 std::deque<int64> deletable_response_ids_; 128 std::deque<int64> deletable_response_ids_;
(...skipping 19 matching lines...) Expand all
145 // Used to short-circuit certain operations without having to schedule 148 // Used to short-circuit certain operations without having to schedule
146 // any tasks on the background database thread. 149 // any tasks on the background database thread.
147 std::set<GURL> origins_with_groups_; 150 std::set<GURL> origins_with_groups_;
148 std::deque<Task*> pending_simple_tasks_; 151 std::deque<Task*> pending_simple_tasks_;
149 ScopedRunnableMethodFactory<AppCacheStorageImpl> method_factory_; 152 ScopedRunnableMethodFactory<AppCacheStorageImpl> method_factory_;
150 }; 153 };
151 154
152 } // namespace appcache 155 } // namespace appcache
153 156
154 #endif // WEBKIT_APPCACHE_APPCACHE_STORAGE_IMPL_H_ 157 #endif // WEBKIT_APPCACHE_APPCACHE_STORAGE_IMPL_H_
OLDNEW
« no previous file with comments | « webkit/appcache/appcache_service.cc ('k') | webkit/appcache/appcache_storage_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698