| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright 2013 The Chromium Authors. All rights reserved. | 
 |   2 // Use of this source code is governed by a BSD-style license that can be | 
 |   3 // found in the LICENSE file. | 
 |   4  | 
 |   5 #ifndef CHROME_BROWSER_POLICY_SCHEMA_MAP_H_ | 
 |   6 #define CHROME_BROWSER_POLICY_SCHEMA_MAP_H_ | 
 |   7  | 
 |   8 #include <map> | 
 |   9 #include <string> | 
 |  10  | 
 |  11 #include "base/basictypes.h" | 
 |  12 #include "base/memory/ref_counted.h" | 
 |  13 #include "components/policy/core/common/policy_namespace.h" | 
 |  14 #include "components/policy/core/common/schema.h" | 
 |  15  | 
 |  16 namespace policy { | 
 |  17  | 
 |  18 class PolicyBundle; | 
 |  19  | 
 |  20 typedef std::map<std::string, Schema> ComponentMap; | 
 |  21 typedef std::map<PolicyDomain, ComponentMap> DomainMap; | 
 |  22  | 
 |  23 // Contains a mapping of policy namespaces (domain + component ID) to its | 
 |  24 // corresponding Schema. | 
 |  25 class SchemaMap : public base::RefCountedThreadSafe<SchemaMap> { | 
 |  26  public: | 
 |  27   SchemaMap(); | 
 |  28   // Takes ownership of |map| (its contents will be swapped). | 
 |  29   explicit SchemaMap(DomainMap& map); | 
 |  30  | 
 |  31   const DomainMap& GetDomains() const; | 
 |  32  | 
 |  33   const ComponentMap* GetComponents(PolicyDomain domain) const; | 
 |  34  | 
 |  35   const Schema* GetSchema(const PolicyNamespace& ns) const; | 
 |  36  | 
 |  37   // Removes all the policies in |bundle| that don't match the known schemas. | 
 |  38   // Unknown components are also dropped. | 
 |  39   void FilterBundle(PolicyBundle* bundle) const; | 
 |  40  | 
 |  41  private: | 
 |  42   friend class base::RefCountedThreadSafe<SchemaMap>; | 
 |  43  | 
 |  44   ~SchemaMap(); | 
 |  45  | 
 |  46   DomainMap map_; | 
 |  47  | 
 |  48   DISALLOW_COPY_AND_ASSIGN(SchemaMap); | 
 |  49 }; | 
 |  50  | 
 |  51 }  // namespace policy | 
 |  52  | 
 |  53 #endif  // CHROME_BROWSER_POLICY_SCHEMA_MAP_H_ | 
| OLD | NEW |