Index: webkit/common/dom_storage/dom_storage_map.cc |
diff --git a/webkit/common/dom_storage/dom_storage_map.cc b/webkit/common/dom_storage/dom_storage_map.cc |
deleted file mode 100644 |
index 5cc3c5e62fd10086db998e6e3cd134a149f26461..0000000000000000000000000000000000000000 |
--- a/webkit/common/dom_storage/dom_storage_map.cc |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-// 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. |
- |
-#include "webkit/common/dom_storage/dom_storage_map.h" |
- |
-#include "base/logging.h" |
- |
-namespace { |
- |
-size_t size_of_item(const base::string16& key, const base::string16& value) { |
- return (key.length() + value.length()) * sizeof(char16); |
-} |
- |
-size_t CountBytes(const dom_storage::ValuesMap& values) { |
- if (values.size() == 0) |
- return 0; |
- |
- size_t count = 0; |
- dom_storage::ValuesMap::const_iterator it = values.begin(); |
- for (; it != values.end(); ++it) |
- count += size_of_item(it->first, it->second.string()); |
- return count; |
-} |
- |
-} // namespace |
- |
-namespace dom_storage { |
- |
-DomStorageMap::DomStorageMap(size_t quota) |
- : bytes_used_(0), |
- quota_(quota) { |
- ResetKeyIterator(); |
-} |
- |
-DomStorageMap::~DomStorageMap() {} |
- |
-unsigned DomStorageMap::Length() const { |
- return values_.size(); |
-} |
- |
-base::NullableString16 DomStorageMap::Key(unsigned index) { |
- if (index >= values_.size()) |
- return base::NullableString16(); |
- while (last_key_index_ != index) { |
- if (last_key_index_ > index) { |
- --key_iterator_; |
- --last_key_index_; |
- } else { |
- ++key_iterator_; |
- ++last_key_index_; |
- } |
- } |
- return base::NullableString16(key_iterator_->first, false); |
-} |
- |
-base::NullableString16 DomStorageMap::GetItem(const base::string16& key) const { |
- ValuesMap::const_iterator found = values_.find(key); |
- if (found == values_.end()) |
- return base::NullableString16(); |
- return found->second; |
-} |
- |
-bool DomStorageMap::SetItem( |
- const base::string16& key, const base::string16& value, |
- base::NullableString16* old_value) { |
- ValuesMap::const_iterator found = values_.find(key); |
- if (found == values_.end()) |
- *old_value = base::NullableString16(); |
- else |
- *old_value = found->second; |
- |
- size_t old_item_size = old_value->is_null() ? |
- 0 : size_of_item(key, old_value->string()); |
- size_t new_item_size = size_of_item(key, value); |
- size_t new_bytes_used = bytes_used_ - old_item_size + new_item_size; |
- |
- // Only check quota if the size is increasing, this allows |
- // shrinking changes to pre-existing files that are over budget. |
- if (new_item_size > old_item_size && new_bytes_used > quota_) |
- return false; |
- |
- values_[key] = base::NullableString16(value, false); |
- ResetKeyIterator(); |
- bytes_used_ = new_bytes_used; |
- return true; |
-} |
- |
-bool DomStorageMap::RemoveItem( |
- const base::string16& key, |
- base::string16* old_value) { |
- ValuesMap::iterator found = values_.find(key); |
- if (found == values_.end()) |
- return false; |
- *old_value = found->second.string(); |
- values_.erase(found); |
- ResetKeyIterator(); |
- bytes_used_ -= size_of_item(key, *old_value); |
- return true; |
-} |
- |
-void DomStorageMap::SwapValues(ValuesMap* values) { |
- // Note: A pre-existing file may be over the quota budget. |
- values_.swap(*values); |
- bytes_used_ = CountBytes(values_); |
- ResetKeyIterator(); |
-} |
- |
-DomStorageMap* DomStorageMap::DeepCopy() const { |
- DomStorageMap* copy = new DomStorageMap(quota_); |
- copy->values_ = values_; |
- copy->bytes_used_ = bytes_used_; |
- copy->ResetKeyIterator(); |
- return copy; |
-} |
- |
-void DomStorageMap::ResetKeyIterator() { |
- key_iterator_ = values_.begin(); |
- last_key_index_ = 0; |
-} |
- |
-} // namespace dom_storage |