Index: mojo/public/cpp/bindings/lib/validate_params.h |
diff --git a/mojo/public/cpp/bindings/lib/validate_params.h b/mojo/public/cpp/bindings/lib/validate_params.h |
index 2509b6bb0a6457d227739ff5de14fba3bf0b507f..3a21812af8f9a0fdc7ca3d3a297a3efd22bdea5c 100644 |
--- a/mojo/public/cpp/bindings/lib/validate_params.h |
+++ b/mojo/public/cpp/bindings/lib/validate_params.h |
@@ -14,14 +14,36 @@ namespace internal { |
using ValidateEnumFunc = bool (*)(int32_t); |
+// TODO(tibell): Rename to ContainerValidateParams. |
class ArrayValidateParams { |
public: |
+ // Validate a map. A map is validated as a pair of arrays, one for the keys |
yzshen1
2016/06/02 19:52:28
style nit: Validate -> Validates. Because the sent
tibell
2016/06/02 23:55:01
Done
(Python has the opposite convention.)
|
+ // and one for the values. Both arguments must be non-null. |
+ // |
+ // ArrayValidateParams takes ownership of |in_key_validate params| and |
+ // |in_element_validate params|. |
+ ArrayValidateParams(ArrayValidateParams* in_key_validate_params, |
+ ArrayValidateParams* in_element_validate_params) |
+ : expected_num_elements(0), |
yzshen1
2016/06/02 19:52:28
Nit: Please consider doing initialization at their
tibell
2016/06/02 23:55:02
Done.
|
+ element_is_nullable(false), |
+ key_validate_params(in_key_validate_params), |
+ element_validate_params(in_element_validate_params), |
+ validate_enum_func(nullptr) { |
+ DCHECK(in_key_validate_params) |
+ << "Map validate params require key validate params"; |
+ DCHECK(in_element_validate_params) |
+ << "Map validate params require element validate params"; |
+ } |
+ |
+ // Validate an array. |
+ // |
// ArrayValidateParams takes ownership of |in_element_validate params|. |
ArrayValidateParams(uint32_t in_expected_num_elements, |
bool in_element_is_nullable, |
ArrayValidateParams* in_element_validate_params) |
: expected_num_elements(in_expected_num_elements), |
element_is_nullable(in_element_is_nullable), |
+ key_validate_params(nullptr), |
element_validate_params(in_element_validate_params), |
validate_enum_func(nullptr) {} |
@@ -30,12 +52,15 @@ class ArrayValidateParams { |
ValidateEnumFunc in_validate_enum_func) |
: expected_num_elements(in_expected_num_elements), |
element_is_nullable(false), |
+ key_validate_params(nullptr), |
element_validate_params(nullptr), |
validate_enum_func(in_validate_enum_func) {} |
~ArrayValidateParams() { |
if (element_validate_params) |
delete element_validate_params; |
+ if (key_validate_params) |
+ delete key_validate_params; |
} |
// If |expected_num_elements| is not 0, the array is expected to have exactly |
@@ -45,6 +70,10 @@ class ArrayValidateParams { |
// Whether the elements are nullable. |
bool element_is_nullable; |
+ // Validation information for map key. It is either a pointer to another |
+ // instance of ArrayValidateParams (if keys are arrays or maps), or nullptr. |
yzshen1
2016/06/02 19:52:28
This comment needs to be revised: the param is for
tibell
2016/06/02 23:55:01
Done.
|
+ ArrayValidateParams* key_validate_params; |
+ |
// Validation information for elements. It is either a pointer to another |
yzshen1
2016/06/02 19:59:41
It seems this comment needs to be updated, too.
In
tibell
2016/06/02 23:55:01
Done.
|
// instance of ArrayValidateParams (if elements are arrays or maps), or |
// nullptr. In the case of maps, this is used to validate the value array. |