diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-09 03:25:51 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-09 03:25:51 +0000 |
commit | e7dff7bae2779884b62dc3c7f8bd40a4987627f1 (patch) | |
tree | cfc42a36432847e42eabf716cc56bc2365ed10a4 /webkit/appcache/appcache_working_set.h | |
parent | 55e9c25f48d8d99cc0433258b44f6e96011a63cd (diff) | |
download | chromium_src-e7dff7bae2779884b62dc3c7f8bd40a4987627f1.zip chromium_src-e7dff7bae2779884b62dc3c7f8bd40a4987627f1.tar.gz chromium_src-e7dff7bae2779884b62dc3c7f8bd40a4987627f1.tar.bz2 |
AppCache StorageAPIs
TEST=none yet, these are just API definitions stubbed out for now
BUG=none
Review URL: http://codereview.chromium.org/209071
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28513 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_working_set.h')
-rw-r--r-- | webkit/appcache/appcache_working_set.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/webkit/appcache/appcache_working_set.h b/webkit/appcache/appcache_working_set.h new file mode 100644 index 0000000..6785d50 --- /dev/null +++ b/webkit/appcache/appcache_working_set.h @@ -0,0 +1,57 @@ +// Copyright (c) 2009 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. + +#ifndef WEBKIT_APPCACHE_APPCACHE_WORKING_SET_H_ +#define WEBKIT_APPCACHE_APPCACHE_WORKING_SET_H_ + +#include <map> + +#include "base/hash_tables.h" +#include "googleurl/src/gurl.h" + +namespace appcache { + +class AppCache; +class AppCacheGroup; +class AppCacheResponseInfo; + +// Represents the working set of appcache object instances +// currently in memory. +class AppCacheWorkingSet { + public: + ~AppCacheWorkingSet(); + + void AddCache(AppCache* cache); + void RemoveCache(AppCache* cache); + AppCache* GetCache(int64 id) { + CacheMap::iterator it = caches_.find(id); + return (it != caches_.end()) ? it->second : NULL; + } + + void AddGroup(AppCacheGroup* group); + void RemoveGroup(AppCacheGroup* group); + AppCacheGroup* GetGroup(const GURL& manifest_url) { + GroupMap::iterator it = groups_.find(manifest_url); + return (it != groups_.end()) ? it->second : NULL; + } + + void AddResponseInfo(AppCacheResponseInfo* response_info); + void RemoveResponseInfo(AppCacheResponseInfo* response_info); + AppCacheResponseInfo* GetResponseInfo(int64 id) { + ResponseInfoMap::iterator it = response_infos_.find(id); + return (it != response_infos_.end()) ? it->second : NULL; + } + + private: + typedef base::hash_map<int64, AppCache*> CacheMap; + typedef std::map<GURL, AppCacheGroup*> GroupMap; + typedef base::hash_map<int64, AppCacheResponseInfo*> ResponseInfoMap; + CacheMap caches_; + GroupMap groups_; + ResponseInfoMap response_infos_; +}; + +} // namespace appcache + +#endif // WEBKIT_APPCACHE_APPCACHE_WORKING_SET_H_ |