summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/value_counter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/common/extensions/value_counter.cc')
-rw-r--r--chrome/common/extensions/value_counter.cc67
1 files changed, 0 insertions, 67 deletions
diff --git a/chrome/common/extensions/value_counter.cc b/chrome/common/extensions/value_counter.cc
deleted file mode 100644
index 156e3ad..0000000
--- a/chrome/common/extensions/value_counter.cc
+++ /dev/null
@@ -1,67 +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 "chrome/common/extensions/value_counter.h"
-
-#include "base/values.h"
-
-#include <algorithm>
-
-namespace extensions {
-
-ValueCounter::ValueCounter() {
-}
-
-ValueCounter::~ValueCounter() {
-}
-
-ValueCounter::Entry::Entry(const base::Value& value)
- : value_(value.DeepCopy()),
- count_(1) {
-}
-
-ValueCounter::Entry::~Entry() {
-}
-
-int ValueCounter::Entry::Increment() {
- return ++count_;
-}
-
-int ValueCounter::Entry::Decrement() {
- return --count_;
-}
-
-int ValueCounter::Add(const base::Value& value) {
- return AddImpl(value, true);
-}
-
-int ValueCounter::Remove(const base::Value& value) {
- for (EntryList::iterator it = entries_.begin(); it != entries_.end(); it++) {
- (*it)->value()->GetType();
- if ((*it)->value()->Equals(&value)) {
- int remaining = (*it)->Decrement();
- if (remaining == 0) {
- std::swap(*it, entries_.back());
- entries_.pop_back();
- }
- return remaining;
- }
- }
- return 0;
-}
-
-int ValueCounter::AddIfMissing(const base::Value& value) {
- return AddImpl(value, false);
-}
-
-int ValueCounter::AddImpl(const base::Value& value, bool increment) {
- for (EntryList::iterator it = entries_.begin(); it != entries_.end(); it++) {
- if ((*it)->value()->Equals(&value))
- return increment ? (*it)->Increment() : (*it)->count();
- }
- entries_.push_back(linked_ptr<Entry>(new Entry(value)));
- return 1;
-}
-
-} // namespace extensions