Index: components/policy/core/common/policy_namespace.h |
diff --git a/components/policy/core/common/policy_namespace.h b/components/policy/core/common/policy_namespace.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d8cf1cc0f78ff79b12578a2ef69ea7ca5ba00e5 |
--- /dev/null |
+++ b/components/policy/core/common/policy_namespace.h |
@@ -0,0 +1,49 @@ |
+// Copyright 2013 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 COMPONENTS_POLICY_CORE_COMMON_POLICY_NAMESPACE_H_ |
+#define COMPONENTS_POLICY_CORE_COMMON_POLICY_NAMESPACE_H_ |
+ |
+#include <string> |
+ |
+#include "components/policy/policy_export.h" |
+ |
+namespace policy { |
+ |
+// Policies are namespaced by a (PolicyDomain, ID) pair. The meaning of the ID |
+// string depends on the domain; for example, if the PolicyDomain is |
+// "extensions" then the ID identifies the extension that the policies control. |
+enum POLICY_EXPORT PolicyDomain { |
+ // The component ID for chrome policies is always the empty string. |
+ POLICY_DOMAIN_CHROME, |
+ |
+ // The extensions policy domain is a work in progress. Included here for |
+ // tests. |
+ POLICY_DOMAIN_EXTENSIONS, |
+ |
+ // Must be the last entry. |
+ POLICY_DOMAIN_SIZE, |
+}; |
+ |
+// Groups a policy domain and a component ID in a single object representing |
+// a policy namespace. Objects of this class can be used as keys in std::maps. |
+struct POLICY_EXPORT PolicyNamespace { |
+ public: |
+ PolicyNamespace(); |
+ PolicyNamespace(PolicyDomain domain, const std::string& component_id); |
+ PolicyNamespace(const PolicyNamespace& other); |
+ ~PolicyNamespace(); |
+ |
+ PolicyNamespace& operator=(const PolicyNamespace& other); |
+ bool operator<(const PolicyNamespace& other) const; |
+ bool operator==(const PolicyNamespace& other) const; |
+ bool operator!=(const PolicyNamespace& other) const; |
+ |
+ PolicyDomain domain; |
+ std::string component_id; |
+}; |
+ |
+} // namespace policy |
+ |
+#endif // COMPONENTS_POLICY_CORE_COMMON_POLICY_NAMESPACE_H_ |