summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_working_set.h
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-09 03:25:51 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-09 03:25:51 +0000
commite7dff7bae2779884b62dc3c7f8bd40a4987627f1 (patch)
treecfc42a36432847e42eabf716cc56bc2365ed10a4 /webkit/appcache/appcache_working_set.h
parent55e9c25f48d8d99cc0433258b44f6e96011a63cd (diff)
downloadchromium_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.h57
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_