Index: webkit/appcache/appcache_backend_impl.h |
=================================================================== |
--- webkit/appcache/appcache_backend_impl.h (revision 26254) |
+++ webkit/appcache/appcache_backend_impl.h (working copy) |
@@ -5,22 +5,15 @@ |
#ifndef WEBKIT_APPCACHE_APPCACHE_BACKEND_IMPL_H_ |
#define WEBKIT_APPCACHE_APPCACHE_BACKEND_IMPL_H_ |
-#include <map> |
- |
#include "base/logging.h" |
-#include "base/task.h" |
+#include "base/hash_tables.h" |
#include "webkit/appcache/appcache_host.h" |
-#include "webkit/appcache/appcache_interfaces.h" |
namespace appcache { |
class AppCacheService; |
-typedef Callback2<Status, void*>::Type GetStatusCallback; |
-typedef Callback2<bool, void*>::Type StartUpdateCallback; |
-typedef Callback2<bool, void*>::Type SwapCacheCallback; |
- |
-class AppCacheBackendImpl : public AppCacheBackend { |
+class AppCacheBackendImpl { |
public: |
AppCacheBackendImpl() : service_(NULL), frontend_(NULL), process_id_(0) {} |
~AppCacheBackendImpl(); |
@@ -31,38 +24,33 @@ |
int process_id() const { return process_id_; } |
+ // Methods to support the AppCacheBackend interface. A false return |
+ // value indicates an invalid host_id and that no action was taken |
+ // by the backend impl. |
+ bool RegisterHost(int host_id); |
+ bool UnregisterHost(int host_id); |
+ bool SelectCache(int host_id, |
+ const GURL& document_url, |
+ const int64 cache_document_was_loaded_from, |
+ const GURL& manifest_url); |
+ bool MarkAsForeignEntry(int host_id, const GURL& document_url, |
+ int64 cache_document_was_loaded_from); |
+ bool GetStatusWithCallback(int host_id, GetStatusCallback* callback, |
+ void* callback_param); |
+ bool StartUpdateWithCallback(int host_id, StartUpdateCallback* callback, |
+ void* callback_param); |
+ bool SwapCacheWithCallback(int host_id, SwapCacheCallback* callback, |
+ void* callback_param); |
+ |
// Returns a pointer to a registered host. The backend retains ownership. |
AppCacheHost* GetHost(int host_id) { |
HostMap::iterator it = hosts_.find(host_id); |
- return (it != hosts_.end()) ? &(it->second) : NULL; |
+ return (it != hosts_.end()) ? (it->second) : NULL; |
} |
- typedef std::map<int, AppCacheHost> HostMap; |
+ typedef base::hash_map<int, AppCacheHost*> HostMap; |
const HostMap& hosts() { return hosts_; } |
- // AppCacheBackend methods |
- virtual void RegisterHost(int host_id); |
- virtual void UnregisterHost(int host_id); |
- virtual void SelectCache(int host_id, |
- const GURL& document_url, |
- const int64 cache_document_was_loaded_from, |
- const GURL& manifest_url); |
- virtual void MarkAsForeignEntry(int host_id, const GURL& document_url, |
- int64 cache_document_was_loaded_from); |
- |
- // We don't use the sync variants in the backend, would block the IO thread. |
- virtual Status GetStatus(int host_id) { NOTREACHED(); return UNCACHED; } |
- virtual bool StartUpdate(int host_id) { NOTREACHED(); return false; } |
- virtual bool SwapCache(int host_id) { NOTREACHED(); return false; } |
- |
- // Async variants of the sync methods defined in the backend interface. |
- void GetStatusWithCallback(int host_id, GetStatusCallback* callback, |
- void* callback_param); |
- void StartUpdateWithCallback(int host_id, StartUpdateCallback* callback, |
- void* callback_param); |
- void SwapCacheWithCallback(int host_id, SwapCacheCallback* callback, |
- void* callback_param); |
- |
private: |
AppCacheService* service_; |
AppCacheFrontend* frontend_; |