Index: webkit/dom_storage/dom_storage_map.h |
=================================================================== |
--- webkit/dom_storage/dom_storage_map.h (revision 0) |
+++ webkit/dom_storage/dom_storage_map.h (revision 0) |
@@ -0,0 +1,49 @@ |
+// Copyright (c) 2012 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_DOM_STORAGE_DOM_STORAGE_MAP_H_ |
+#define WEBKIT_DOM_STORAGE_DOM_STORAGE_MAP_H_ |
+#pragma once |
+ |
+#include <map> |
+ |
+#include "base/memory/ref_counted.h" |
+#include "base/nullable_string16.h" |
+#include "base/string16.h" |
+#include "webkit/dom_storage/dom_storage_types.h" |
+ |
+class FilePath; |
+class GURL; |
+ |
+namespace dom_storage { |
+ |
+// A wrapper around a std::map that adds refcounting and |
+// imposes a limit on the total byte size of the keys/values. |
+// See class comments for DomStorageContext for a larger overview. |
+class DomStorageMap |
+ : public base::RefCountedThreadSafe<DomStorageMap> { |
+ public: |
+ DomStorageMap(); |
+ |
+ unsigned Length(); |
+ NullableString16 Key(unsigned index); |
+ NullableString16 GetItem(const string16& key); |
+ bool SetItem(const string16& key, const string16& value, |
+ NullableString16* old_value); |
+ bool RemoveItem(const string16& key, string16* old_value); |
+ |
+ void SwapValues(ValuesMap* map); |
+ DomStorageMap* DeepCopy(); |
+ |
+ private: |
+ friend class base::RefCountedThreadSafe<DomStorageMap>; |
+ ~DomStorageMap(); |
+ |
+ ValuesMap values_; |
+ // TODO(benm): track usage and enforce a quota limit. |
+}; |
+ |
+} // namespace dom_storage |
+ |
+#endif // WEBKIT_DOM_STORAGE_DOM_STORAGE_AREA_H_ |
Property changes on: webkit\dom_storage\dom_storage_map.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |