Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(188)

Side by Side Diff: components/policy/core/common/schema_internal.h

Issue 205923004: Add regex support in policy schema (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@json-schema-regex
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 // An offset into SchemaData::property_nodes that indexes the PropertyNode 56 // An offset into SchemaData::property_nodes that indexes the PropertyNode
57 // right beyond the last known property of this map policy. 57 // right beyond the last known property of this map policy.
58 // 58 //
59 // If |begin == end| then the map policy that this PropertiesNode corresponds 59 // If |begin == end| then the map policy that this PropertiesNode corresponds
60 // to does not have known properties. 60 // to does not have known properties.
61 // 61 //
62 // Note that the range [begin, end) is sorted by PropertyNode::key, so that 62 // Note that the range [begin, end) is sorted by PropertyNode::key, so that
63 // properties can be looked up by binary searching in the range. 63 // properties can be looked up by binary searching in the range.
64 int end; 64 int end;
65 65
66 // An offset into SchemaData::property_nodes that indexes the PropertyNode
67 // right beyond the last known pattern property.
68 //
69 // [end, pattern_end) is the range that covers all pattern properties
70 // defined. It's not required to be sorted.
71 int pattern_end;
72
66 // 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
67 // 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
68 // into SchemaData::schema_nodes that indexes the SchemaNode describing the 75 // into SchemaData::schema_nodes that indexes the SchemaNode describing the
69 // 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
70 // is invalid. 77 // is invalid.
71 int additional; 78 int additional;
72 }; 79 };
73 80
74 // Represents the restriction on TYPE_INTEGER or TYPE_STRING instance of 81 // Represents the restriction on TYPE_INTEGER or TYPE_STRING instance of
75 // base::Value. 82 // base::Value.
76 union POLICY_EXPORT RestrictionNode { 83 union POLICY_EXPORT RestrictionNode {
77 // Offsets into SchemaData::int_enums or SchemaData::string_enums, the 84 // Offsets into SchemaData::int_enums or SchemaData::string_enums, the
78 // entry of which describes the enumeration of all possible values of 85 // entry of which describes the enumeration of all possible values of
79 // corresponding integer or string value. |offset_begin| being strictly less 86 // corresponding integer or string value. |offset_begin| being strictly less
80 // than |offset_end| is assumed. 87 // than |offset_end| is assumed.
81 struct EnumerationRestriction { 88 struct EnumerationRestriction {
82 int offset_begin; 89 int offset_begin;
83 int offset_end; 90 int offset_end;
84 } enumeration_restriction; 91 } enumeration_restriction;
85 92
86 // For integer type only, represents that all values between |min_value| 93 // For integer type only, represents that all values between |min_value|
87 // and |max_value| can be choosen. Note that integer type in base::Value 94 // and |max_value| can be choosen. Note that integer type in base::Value
88 // is bounded, so this can also be used if only one of |min_value| and 95 // is bounded, so this can also be used if only one of |min_value| and
89 // |max_value| is stated. |max_value| being greater or equal to |min_value| 96 // |max_value| is stated. |max_value| being greater or equal to |min_value|
90 // is assumed. 97 // is assumed.
91 struct RangedRestriction { 98 struct RangedRestriction {
92 int max_value; 99 int max_value;
93 int min_value; 100 int min_value;
94 } ranged_restriction; 101 } ranged_restriction;
102
103 // For string type only, requires |pattern_index| and |pattern_index_backup|
104 // to be exactly the same. And it's an offset into SchemaData::string_enums
105 // which contains the regular expression that the target string must follow.
106 struct StringPatternRestriction {
107 int pattern_index;
108 int pattern_index_backup;
109 } string_pattern_restriction;
95 }; 110 };
96 111
97 112
98 // Contains arrays of related nodes. All of the offsets in these nodes reference 113 // Contains arrays of related nodes. All of the offsets in these nodes reference
99 // other nodes in these arrays. 114 // other nodes in these arrays.
100 struct POLICY_EXPORT SchemaData { 115 struct POLICY_EXPORT SchemaData {
101 const SchemaNode* schema_nodes; 116 const SchemaNode* schema_nodes;
102 const PropertyNode* property_nodes; 117 const PropertyNode* property_nodes;
103 const PropertiesNode* properties_nodes; 118 const PropertiesNode* properties_nodes;
104 const RestrictionNode* restriction_nodes; 119 const RestrictionNode* restriction_nodes;
105 120
106 const int* int_enums; 121 const int* int_enums;
107 const char** string_enums; 122 const char** string_enums;
108 }; 123 };
109 124
110 } // namespace internal 125 } // namespace internal
111 } // namespace policy 126 } // namespace policy
112 127
113 #endif // COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_ 128 #endif // COMPONENTS_POLICY_CORE_COMMON_SCHEMA_INTERNAL_H_
OLDNEW
« no previous file with comments | « components/policy/core/common/schema.cc ('k') | components/policy/core/common/schema_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698