diff options
Diffstat (limited to 'chromium/components/policy/core/common/schema.h')
-rw-r--r-- | chromium/components/policy/core/common/schema.h | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/chromium/components/policy/core/common/schema.h b/chromium/components/policy/core/common/schema.h deleted file mode 100644 index 91dc8500876..00000000000 --- a/chromium/components/policy/core/common/schema.h +++ /dev/null @@ -1,127 +0,0 @@ -// 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_SCHEMA_H_ -#define COMPONENTS_POLICY_CORE_COMMON_SCHEMA_H_ - -#include <string> - -#include "base/basictypes.h" -#include "base/memory/ref_counted.h" -#include "base/values.h" -#include "components/policy/policy_export.h" - -namespace policy { -namespace internal { - -struct POLICY_EXPORT SchemaData; -struct POLICY_EXPORT SchemaNode; -struct POLICY_EXPORT PropertyNode; -struct POLICY_EXPORT PropertiesNode; - -} // namespace internal - -// Describes the expected type of one policy. Also recursively describes the -// types of inner elements, for structured types. -// Objects of this class refer to external, immutable data and are cheap to -// copy. -class POLICY_EXPORT Schema { - public: - // Used internally to store shared data. - class InternalStorage; - - // Builds an empty, invalid schema. - Schema(); - - // Makes a copy of |schema| that shares the same internal storage. - Schema(const Schema& schema); - - ~Schema(); - - Schema& operator=(const Schema& schema); - - // Returns a Schema that references static data. This can be used by - // the embedder to pass structures generated at compile time, which can then - // be quickly loaded at runtime. - static Schema Wrap(const internal::SchemaData* data); - - // Parses the JSON schema in |schema| and returns a Schema that owns - // the internal representation. If |schema| is invalid then an invalid Schema - // is returned and |error| contains a reason for the failure. - static Schema Parse(const std::string& schema, std::string* error); - - // Returns true if this Schema is valid. Schemas returned by the methods below - // may be invalid, and in those cases the other methods must not be used. - bool valid() const { return node_ != NULL; } - - base::Value::Type type() const; - - // Returns true if |value| conforms to this Schema. - bool Validate(const base::Value& value) const; - - // Used to iterate over the known properties of TYPE_DICTIONARY schemas. - class POLICY_EXPORT Iterator { - public: - Iterator(const scoped_refptr<const InternalStorage>& storage, - const internal::PropertiesNode* node); - Iterator(const Iterator& iterator); - ~Iterator(); - - Iterator& operator=(const Iterator& iterator); - - // The other methods must not be called if the iterator is at the end. - bool IsAtEnd() const; - - // Advances the iterator to the next property. - void Advance(); - - // Returns the name of the current property. - const char* key() const; - - // Returns the Schema for the current property. This Schema is always valid. - Schema schema() const; - - private: - scoped_refptr<const InternalStorage> storage_; - const internal::PropertyNode* it_; - const internal::PropertyNode* end_; - }; - - // These methods should be called only if type() == TYPE_DICTIONARY, - // otherwise invalid memory will be read. A CHECK is currently enforcing this. - - // Returns an iterator that goes over the named properties of this schema. - // The returned iterator is at the beginning. - Iterator GetPropertiesIterator() const; - - // Returns the Schema for the property named |key|. If |key| is not a known - // property name then the returned Schema is not valid. - Schema GetKnownProperty(const std::string& key) const; - - // Returns the Schema for additional properties. If additional properties are - // not allowed for this Schema then the Schema returned is not valid. - Schema GetAdditionalProperties() const; - - // Returns the Schema for |key| if it is a known property, otherwise returns - // the Schema for additional properties. - Schema GetProperty(const std::string& key) const; - - // Returns the Schema for items of an array. - // This method should be called only if type() == TYPE_LIST, - // otherwise invalid memory will be read. A CHECK is currently enforcing this. - Schema GetItems() const; - - private: - // Builds a schema pointing to the inner structure of |storage|, - // rooted at |node|. - Schema(const scoped_refptr<const InternalStorage>& storage, - const internal::SchemaNode* node); - - scoped_refptr<const InternalStorage> storage_; - const internal::SchemaNode* node_; -}; - -} // namespace policy - -#endif // COMPONENTS_POLICY_CORE_COMMON_SCHEMA_H_ |