Home | History | Annotate | Download | only in policy
      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_REGISTRY_SERVICE_H_
      6 #define CHROME_BROWSER_POLICY_SCHEMA_REGISTRY_SERVICE_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/scoped_ptr.h"
     10 #include "components/keyed_service/core/keyed_service.h"
     11 
     12 namespace policy {
     13 
     14 class CombinedSchemaRegistry;
     15 class Schema;
     16 class SchemaRegistry;
     17 
     18 // A KeyedService associated with a Profile that contains a SchemaRegistry.
     19 class SchemaRegistryService : public KeyedService {
     20  public:
     21   // This |registry| will initially contain only the |chrome_schema|, if
     22   // it's valid. The optional |global_registry| must outlive this, and will
     23   // track |registry|.
     24   SchemaRegistryService(scoped_ptr<SchemaRegistry> registry,
     25                         const Schema& chrome_schema,
     26                         CombinedSchemaRegistry* global_registry);
     27   virtual ~SchemaRegistryService();
     28 
     29   SchemaRegistry* registry() const { return registry_.get(); }
     30 
     31  private:
     32   scoped_ptr<SchemaRegistry> registry_;
     33 
     34   DISALLOW_COPY_AND_ASSIGN(SchemaRegistryService);
     35 };
     36 
     37 }  // namespace policy
     38 
     39 #endif  // CHROME_BROWSER_POLICY_SCHEMA_REGISTRY_SERVICE_H_
     40