Index: chrome/browser/policy/policy_bundle.cc |
diff --git a/chrome/browser/policy/policy_bundle.cc b/chrome/browser/policy/policy_bundle.cc |
deleted file mode 100644 |
index 90e4a0a210509a1d136e4f964477463f5660c0fe..0000000000000000000000000000000000000000 |
--- a/chrome/browser/policy/policy_bundle.cc |
+++ /dev/null |
@@ -1,110 +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/browser/policy/policy_bundle.h" |
- |
-#include "base/logging.h" |
-#include "base/stl_util.h" |
- |
-namespace policy { |
- |
-PolicyBundle::PolicyBundle() {} |
- |
-PolicyBundle::~PolicyBundle() { |
- Clear(); |
-} |
- |
-PolicyMap& PolicyBundle::Get(const PolicyNamespace& ns) { |
- DCHECK(ns.domain != POLICY_DOMAIN_CHROME || ns.component_id.empty()); |
- PolicyMap*& policy = policy_bundle_[ns]; |
- if (!policy) |
- policy = new PolicyMap(); |
- return *policy; |
-} |
- |
-const PolicyMap& PolicyBundle::Get(const PolicyNamespace& ns) const { |
- DCHECK(ns.domain != POLICY_DOMAIN_CHROME || ns.component_id.empty()); |
- const_iterator it = policy_bundle_.find(ns); |
- return it == end() ? kEmpty_ : *it->second; |
-} |
- |
-void PolicyBundle::Swap(PolicyBundle* other) { |
- policy_bundle_.swap(other->policy_bundle_); |
-} |
- |
-void PolicyBundle::CopyFrom(const PolicyBundle& other) { |
- Clear(); |
- for (PolicyBundle::const_iterator it = other.begin(); |
- it != other.end(); ++it) { |
- policy_bundle_[it->first] = it->second->DeepCopy().release(); |
- } |
-} |
- |
-void PolicyBundle::MergeFrom(const PolicyBundle& other) { |
- // Iterate over both |this| and |other| in order; skip what's extra in |this|, |
- // add what's missing, and merge the namespaces in common. |
- MapType::iterator it_this = policy_bundle_.begin(); |
- MapType::iterator end_this = policy_bundle_.end(); |
- const_iterator it_other = other.begin(); |
- const_iterator end_other = other.end(); |
- |
- while (it_this != end_this && it_other != end_other) { |
- if (it_this->first == it_other->first) { |
- // Same namespace: merge existing PolicyMaps. |
- it_this->second->MergeFrom(*it_other->second); |
- ++it_this; |
- ++it_other; |
- } else if (it_this->first < it_other->first) { |
- // |this| has a PolicyMap that |other| doesn't; skip it. |
- ++it_this; |
- } else if (it_other->first < it_this->first) { |
- // |other| has a PolicyMap that |this| doesn't; copy it. |
- PolicyMap*& policy = policy_bundle_[it_other->first]; |
- DCHECK(!policy); |
- policy = it_other->second->DeepCopy().release(); |
- ++it_other; |
- } else { |
- NOTREACHED(); |
- } |
- } |
- |
- // Add extra PolicyMaps at the end. |
- while (it_other != end_other) { |
- PolicyMap*& policy = policy_bundle_[it_other->first]; |
- DCHECK(!policy); |
- policy = it_other->second->DeepCopy().release(); |
- ++it_other; |
- } |
-} |
- |
-bool PolicyBundle::Equals(const PolicyBundle& other) const { |
- // Equals() has the peculiarity that an entry with an empty PolicyMap equals |
- // an non-existant entry. This handles usage of non-const Get() that doesn't |
- // insert any policies. |
- const_iterator it_this = begin(); |
- const_iterator it_other = other.begin(); |
- |
- while (true) { |
- // Skip empty PolicyMaps. |
- while (it_this != end() && it_this->second->empty()) |
- ++it_this; |
- while (it_other != other.end() && it_other->second->empty()) |
- ++it_other; |
- if (it_this == end() || it_other == other.end()) |
- break; |
- if (it_this->first != it_other->first || |
- !it_this->second->Equals(*it_other->second)) { |
- return false; |
- } |
- ++it_this; |
- ++it_other; |
- } |
- return it_this == end() && it_other == other.end(); |
-} |
- |
-void PolicyBundle::Clear() { |
- STLDeleteValues(&policy_bundle_); |
-} |
- |
-} // namespace policy |