schema_registry_service.h revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CHROME_BROWSER_POLICY_SCHEMA_REGISTRY_SERVICE_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CHROME_BROWSER_POLICY_SCHEMA_REGISTRY_SERVICE_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/basictypes.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/compiler_specific.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/core/keyed_service.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/schema_registry.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace policy { 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class Schema; 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// A SchemaRegistry that is also a KeyedService, and is associated 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// with a Profile. 19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class SchemaRegistryService : public SchemaRegistry, public KeyedService { 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // This SchemaRegistry will initially contain only the |chrome_schema|, if 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // it's valid. The optional |global_registry| must outlive this, and will 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // track this registry. 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SchemaRegistryService(const Schema& chrome_schema, 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) CombinedSchemaRegistry* global_registry); 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual ~SchemaRegistryService(); 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) // KeyedService: 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void Shutdown() OVERRIDE; 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) CombinedSchemaRegistry* global_registry_; 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(SchemaRegistryService); 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace policy 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CHROME_BROWSER_POLICY_SCHEMA_REGISTRY_SERVICE_H_ 40