OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ | 5 #ifndef COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ |
6 #define COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ | 6 #define COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ |
7 | 7 |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "components/policy/policy_export.h" | 9 #include "components/policy/policy_export.h" |
10 | 10 |
11 namespace policy { | 11 namespace policy { |
12 namespace internal { | 12 namespace internal { |
13 | 13 |
14 // These types are used internally by the SchemaOwner parser, and by the | 14 // These types are used internally by the SchemaOwner parser, and by the |
15 // compile-time code generator. They shouldn't be used directly. | 15 // compile-time code generator. They shouldn't be used directly. |
16 | 16 |
17 // Represents the type of one policy, or an item of a list policy, or a | 17 // Represents the type of one policy, or an item of a list policy, or a |
18 // property of a map policy. | 18 // property of a map policy. |
19 struct POLICY_EXPORT SchemaNode { | 19 struct POLICY_EXPORT SchemaNode { |
20 // The policy type. | 20 // The policy type. |
21 base::Value::Type type; | 21 base::Value::Type type; |
22 | 22 |
23 // If |type| is TYPE_DICTIONARY then |extra| is an offset into | 23 // If |type| is Type::DICTIONARY then |extra| is an offset into |
24 // SchemaData::properties_nodes that indexes the PropertiesNode describing | 24 // SchemaData::properties_nodes that indexes the PropertiesNode describing |
25 // the entries of this dictionary. | 25 // the entries of this dictionary. |
26 // | 26 // |
27 // If |type| is TYPE_LIST then |extra| is an offset into | 27 // If |type| is Type::LIST then |extra| is an offset into |
28 // SchemaData::schema_nodes that indexes the SchemaNode describing the items | 28 // SchemaData::schema_nodes that indexes the SchemaNode describing the items |
29 // of this list. | 29 // of this list. |
30 // | 30 // |
31 // If |type| is TYPE_INTEGER or TYPE_STRING, and contains corresponding | 31 // If |type| is Type::INTEGER or Type::STRING, and contains corresponding |
32 // restriction (enumeration of possible values, or range for integer), then | 32 // restriction (enumeration of possible values, or range for integer), then |
33 // |extra| is an offset into SchemaData::restriction_nodes that indexes the | 33 // |extra| is an offset into SchemaData::restriction_nodes that indexes the |
34 // RestrictionNode describing the restriction on the value. | 34 // RestrictionNode describing the restriction on the value. |
35 // | 35 // |
36 // Otherwise extra is -1 and is invalid. | 36 // Otherwise extra is -1 and is invalid. |
37 int extra; | 37 int extra; |
38 }; | 38 }; |
39 | 39 |
40 // Represents an entry of a map policy. | 40 // Represents an entry of a map policy. |
41 struct POLICY_EXPORT PropertyNode { | 41 struct POLICY_EXPORT PropertyNode { |
(...skipping 29 matching lines...) Expand all Loading... |
71 int pattern_end; | 71 int pattern_end; |
72 | 72 |
73 // If this map policy supports keys with any value (besides the well-known | 73 // If this map policy supports keys with any value (besides the well-known |
74 // values described in the range [begin, end)) then |additional| is an offset | 74 // values described in the range [begin, end)) then |additional| is an offset |
75 // into SchemaData::schema_nodes that indexes the SchemaNode describing the | 75 // into SchemaData::schema_nodes that indexes the SchemaNode describing the |
76 // structure of the values for those keys. Otherwise |additional| is -1 and | 76 // structure of the values for those keys. Otherwise |additional| is -1 and |
77 // is invalid. | 77 // is invalid. |
78 int additional; | 78 int additional; |
79 }; | 79 }; |
80 | 80 |
81 // Represents the restriction on TYPE_INTEGER or TYPE_STRING instance of | 81 // Represents the restriction on Type::INTEGER or Type::STRING instance of |
82 // base::Value. | 82 // base::Value. |
83 union POLICY_EXPORT RestrictionNode { | 83 union POLICY_EXPORT RestrictionNode { |
84 // Offsets into SchemaData::int_enums or SchemaData::string_enums, the | 84 // Offsets into SchemaData::int_enums or SchemaData::string_enums, the |
85 // entry of which describes the enumeration of all possible values of | 85 // entry of which describes the enumeration of all possible values of |
86 // corresponding integer or string value. |offset_begin| being strictly less | 86 // corresponding integer or string value. |offset_begin| being strictly less |
87 // than |offset_end| is assumed. | 87 // than |offset_end| is assumed. |
88 struct EnumerationRestriction { | 88 struct EnumerationRestriction { |
89 int offset_begin; | 89 int offset_begin; |
90 int offset_end; | 90 int offset_end; |
91 } enumeration_restriction; | 91 } enumeration_restriction; |
(...skipping 27 matching lines...) Expand all Loading... |
119 const RestrictionNode* restriction_nodes; | 119 const RestrictionNode* restriction_nodes; |
120 | 120 |
121 const int* int_enums; | 121 const int* int_enums; |
122 const char** string_enums; | 122 const char** string_enums; |
123 }; | 123 }; |
124 | 124 |
125 } // namespace internal | 125 } // namespace internal |
126 } // namespace policy | 126 } // namespace policy |
127 | 127 |
128 #endif // COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ | 128 #endif // COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ |
OLD | NEW |