Index: components/policy/core/common/schema_internal.h |
diff --git a/components/policy/core/common/schema_internal.h b/components/policy/core/common/schema_internal.h |
index 40d557a408d72ff868b0bfd3bf58ce537e75f9e9..3a543f4ff3627580dfb71d68a89a42788c25ba7b 100644 |
--- a/components/policy/core/common/schema_internal.h |
+++ b/components/policy/core/common/schema_internal.h |
@@ -28,6 +28,11 @@ struct POLICY_EXPORT SchemaNode { |
// SchemaData::schema_nodes that indexes the SchemaNode describing the items |
// of this list. |
// |
+ // If |type| is TYPE_INTEGER or TYPE_STRING, and contains corresponding |
+ // limitations (enumeration of possible values, or range for integer), then |
+ // |extra| is an offset into SchemaData::limitation_nodes that indexes the |
+ // LimitationNode describing the limitation on the value. |
+ // |
// Otherwise extra is -1 and is invalid. |
int extra; |
}; |
@@ -66,12 +71,42 @@ struct POLICY_EXPORT PropertiesNode { |
int additional; |
}; |
+// Represent the limitation on TYPE_INTEGER or TYPE_STRING instance of |
Joao da Silva
2014/01/14 10:50:41
*Represents
binjin
2014/01/15 15:02:54
Done.
|
+// base::Value. |
+struct POLICY_EXPORT LimitationNode { |
+ // Set to true if RangedLimitation is used, and set to false otherwise. |
+ bool is_ranged; |
+ |
+ union LimitationValues { |
+ // Offsets into SchemaData::int_enums or SchemaData::string_enums, the |
+ // entry of which describes the enumeration of all possible values of |
+ // corresponding integer or string value. |
+ struct EnumerationLimitation { |
+ int offset_begin; |
+ int offset_end; |
+ }; |
+ // For integer type only, represents that all values between |min_value| |
Joao da Silva
2014/01/14 10:50:41
nit: add a newline after };
binjin
2014/01/15 15:02:54
Done.
|
+ // and |max_value| can be choosed. Note that integer type in base::Value |
Joao da Silva
2014/01/14 10:50:41
*chosen
binjin
2014/01/15 15:02:54
Done.
|
+ // is bounded, so this can also be used if only one of |min_value| and |
+ // |max_value| is stated. |
+ struct RangedLimitation { |
+ int min_value; |
+ int max_value; |
+ }; |
+ }; |
+}; |
+ |
+ |
// Contains arrays of related nodes. All of the offsets in these nodes reference |
// other nodes in these arrays. |
struct POLICY_EXPORT SchemaData { |
const SchemaNode* schema_nodes; |
const PropertyNode* property_nodes; |
const PropertiesNode* properties_nodes; |
+ const LimitationNode* limitation_nodes; |
+ |
+ const int* int_enums; |
+ const char** string_enums; |
}; |
} // namespace internal |