diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-15 20:00:11 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-15 20:00:11 +0000 |
commit | 6c270d442c1ee1a526538b8530e6198a9ada90e4 (patch) | |
tree | 5e5ccfbcd54cc59bbb250a233cf128df9dac5fab /webkit/appcache/appcache_service.h | |
parent | e10d86c2067313fa2cdc8684b5f0904b0d8d985e (diff) | |
download | chromium_src-6c270d442c1ee1a526538b8530e6198a9ada90e4.zip chromium_src-6c270d442c1ee1a526538b8530e6198a9ada90e4.tar.gz chromium_src-6c270d442c1ee1a526538b8530e6198a9ada90e4.tar.bz2 |
1) Tell the AppCacheService which request context to use when fetching resources for updates. Done for both chrome and test_shell. The service does not yet take a reference to that context, because the extra reference apparently gives some tests grief.
2) Added methods to generate new storage ids for different object types on the IO thread.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/195077
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26253 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_service.h')
-rw-r--r-- | webkit/appcache/appcache_service.h | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/webkit/appcache/appcache_service.h b/webkit/appcache/appcache_service.h index bc8bee8..0ccad80 100644 --- a/webkit/appcache/appcache_service.h +++ b/webkit/appcache/appcache_service.h @@ -11,6 +11,8 @@ #include "base/hash_tables.h" #include "base/file_path.h" +#include "base/ref_counted.h" +#include "net/url_request/url_request_context.h" #include "googleurl/src/gurl.h" namespace appcache { @@ -20,13 +22,24 @@ class AppCacheBackendImpl; class AppCacheGroup; // Class that manages the application cache service. Sends notifications -// to many frontends. One instance per user-profile. +// to many frontends. One instance per user-profile. Each instance has +// exclusive access to it's cache_directory on disk. class AppCacheService { public: + AppCacheService(); virtual ~AppCacheService(); void Initialize(const FilePath& cache_directory); + // Context for use during cache updates, should only be accessed + // on the IO thread. + URLRequestContext* request_context() { return request_context_.get(); } + void set_request_context(URLRequestContext* context) { + // TODO(michaeln): need to look into test failures that occur + // when we take this reference? Stubbing out for now. + // request_context_ = context; + } + // TODO(jennb): API to set service settings, like file paths for storage // track which processes are using this appcache service @@ -53,6 +66,12 @@ class AppCacheService { return (it != groups_.end()) ? it->second : NULL; } + // The service generates unique storage ids for different object types. + int64 NewCacheId() { return ++last_cache_id_; } + int64 NewGroupId() { return ++last_group_id_; } + int64 NewEntryId() { return ++last_entry_id_; } + int64 NewResponseId() { return ++last_response_id_; } + private: // In-memory representation of stored appcache data. Represents a subset // of the appcache database currently in use. @@ -61,16 +80,25 @@ class AppCacheService { CacheMap caches_; GroupMap groups_; + // The last storage id used for different object types. + int64 last_cache_id_; + int64 last_group_id_; + int64 last_entry_id_; + int64 last_response_id_; + // Track current processes. One 'backend' per child process. typedef std::map<int, AppCacheBackendImpl*> BackendMap; BackendMap backends_; FilePath cache_directory_; + + // Context for use during cache updates. + scoped_refptr<URLRequestContext> request_context_; + // TODO(jennb): info about appcache storage // AppCacheDatabase db_; // DiskCache response_storage_; - // TODO(jennb): service settings: e.g. max size of app cache? // TODO(jennb): service state: e.g. reached quota? }; |