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

Side by Side Diff: mojo/public/tools/bindings/generators/mojom_cpp_generator.py

Issue 2030873002: Mojo C++ bindings: rename ArrayValidateParams for clarity (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cc-enums
Patch Set: Created 4 years, 6 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 """Generates C++ source files from a mojom.Module.""" 5 """Generates C++ source files from a mojom.Module."""
6 6
7 import mojom.generate.generator as generator 7 import mojom.generate.generator as generator
8 import mojom.generate.module as mojom 8 import mojom.generate.module as mojom
9 import mojom.generate.pack as pack 9 import mojom.generate.pack as pack
10 from mojom.generate.template_expander import UseJinja 10 from mojom.generate.template_expander import UseJinja
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 if len(struct.fields) > 4: 372 if len(struct.fields) > 4:
373 return False 373 return False
374 for field in struct.fields: 374 for field in struct.fields:
375 if mojom.IsMoveOnlyKind(field.kind): 375 if mojom.IsMoveOnlyKind(field.kind):
376 return False 376 return False
377 return True 377 return True
378 378
379 def ShouldInlineUnion(union): 379 def ShouldInlineUnion(union):
380 return not any(mojom.IsMoveOnlyKind(field.kind) for field in union.fields) 380 return not any(mojom.IsMoveOnlyKind(field.kind) for field in union.fields)
381 381
382 def GetArrayValidateParamsCtorArgs(kind): 382 def GetContainerValidateParamsCtorArgs(kind):
383 if mojom.IsStringKind(kind): 383 if mojom.IsStringKind(kind):
384 expected_num_elements = 0 384 expected_num_elements = 0
385 element_is_nullable = False 385 element_is_nullable = False
386 key_validate_params = "nullptr" 386 key_validate_params = "nullptr"
387 element_validate_params = "nullptr" 387 element_validate_params = "nullptr"
388 enum_validate_func = "nullptr" 388 enum_validate_func = "nullptr"
389 elif mojom.IsMapKind(kind): 389 elif mojom.IsMapKind(kind):
390 expected_num_elements = 0 390 expected_num_elements = 0
391 element_is_nullable = False 391 element_is_nullable = False
392 key_validate_params = GetNewArrayValidateParams(mojom.Array( 392 key_validate_params = GetNewContainerValidateParams(mojom.Array(
393 kind=kind.key_kind)) 393 kind=kind.key_kind))
394 element_validate_params = GetNewArrayValidateParams(mojom.Array( 394 element_validate_params = GetNewContainerValidateParams(mojom.Array(
395 kind=kind.value_kind)) 395 kind=kind.value_kind))
396 enum_validate_func = "nullptr" 396 enum_validate_func = "nullptr"
397 else: # mojom.IsArrayKind(kind) 397 else: # mojom.IsArrayKind(kind)
398 expected_num_elements = generator.ExpectedArraySize(kind) or 0 398 expected_num_elements = generator.ExpectedArraySize(kind) or 0
399 element_is_nullable = mojom.IsNullableKind(kind.kind) 399 element_is_nullable = mojom.IsNullableKind(kind.kind)
400 key_validate_params = "nullptr" 400 key_validate_params = "nullptr"
401 element_validate_params = GetNewArrayValidateParams(kind.kind) 401 element_validate_params = GetNewContainerValidateParams(kind.kind)
402 if mojom.IsEnumKind(kind.kind): 402 if mojom.IsEnumKind(kind.kind):
403 enum_validate_func = ("%s::Validate" % 403 enum_validate_func = ("%s::Validate" %
404 GetQualifiedNameForKind(kind.kind, internal=True)) 404 GetQualifiedNameForKind(kind.kind, internal=True))
405 else: 405 else:
406 enum_validate_func = "nullptr" 406 enum_validate_func = "nullptr"
407 407
408 if enum_validate_func == "nullptr": 408 if enum_validate_func == "nullptr":
409 if key_validate_params == "nullptr": 409 if key_validate_params == "nullptr":
410 return "%d, %s, %s" % (expected_num_elements, 410 return "%d, %s, %s" % (expected_num_elements,
411 "true" if element_is_nullable else "false", 411 "true" if element_is_nullable else "false",
412 element_validate_params) 412 element_validate_params)
413 else: 413 else:
414 return "%s, %s" % (key_validate_params, element_validate_params) 414 return "%s, %s" % (key_validate_params, element_validate_params)
415 else: 415 else:
416 return "%d, %s" % (expected_num_elements, enum_validate_func) 416 return "%d, %s" % (expected_num_elements, enum_validate_func)
417 417
418 def GetNewArrayValidateParams(kind): 418 def GetNewContainerValidateParams(kind):
419 if (not mojom.IsArrayKind(kind) and not mojom.IsMapKind(kind) and 419 if (not mojom.IsArrayKind(kind) and not mojom.IsMapKind(kind) and
420 not mojom.IsStringKind(kind)): 420 not mojom.IsStringKind(kind)):
421 return "nullptr" 421 return "nullptr"
422 422
423 return "new mojo::internal::ArrayValidateParams(%s)" % ( 423 return "new mojo::internal::ContainerValidateParams(%s)" % (
424 GetArrayValidateParamsCtorArgs(kind)) 424 GetContainerValidateParamsCtorArgs(kind))
425 425
426 class Generator(generator.Generator): 426 class Generator(generator.Generator):
427 427
428 cpp_filters = { 428 cpp_filters = {
429 "constant_value": ConstantValue, 429 "constant_value": ConstantValue,
430 "cpp_wrapper_param_type": GetCppWrapperParamType, 430 "cpp_wrapper_param_type": GetCppWrapperParamType,
431 "cpp_field_type": GetCppFieldType, 431 "cpp_field_type": GetCppFieldType,
432 "cpp_union_field_type": GetCppUnionFieldType, 432 "cpp_union_field_type": GetCppUnionFieldType,
433 "cpp_pod_type": GetCppPodType, 433 "cpp_pod_type": GetCppPodType,
434 "cpp_union_getter_return_type": GetUnionGetterReturnType, 434 "cpp_union_getter_return_type": GetUnionGetterReturnType,
435 "cpp_wrapper_type": GetCppWrapperType, 435 "cpp_wrapper_type": GetCppWrapperType,
436 "default_value": DefaultValue, 436 "default_value": DefaultValue,
437 "expression_to_text": ExpressionToText, 437 "expression_to_text": ExpressionToText,
438 "get_array_validate_params_ctor_args": GetArrayValidateParamsCtorArgs, 438 "get_array_validate_params_ctor_args": GetContainerValidateParamsCtorArgs,
yzshen1 2016/06/02 19:57:03 please update get_array_validate_params_ctor_args
tibell 2016/06/03 00:01:30 Done.
439 "get_name_for_kind": GetNameForKind, 439 "get_name_for_kind": GetNameForKind,
440 "get_pad": pack.GetPad, 440 "get_pad": pack.GetPad,
441 "get_qualified_name_for_kind": GetQualifiedNameForKind, 441 "get_qualified_name_for_kind": GetQualifiedNameForKind,
442 "has_callbacks": mojom.HasCallbacks, 442 "has_callbacks": mojom.HasCallbacks,
443 "has_sync_methods": mojom.HasSyncMethods, 443 "has_sync_methods": mojom.HasSyncMethods,
444 "should_inline": ShouldInlineStruct, 444 "should_inline": ShouldInlineStruct,
445 "should_inline_union": ShouldInlineUnion, 445 "should_inline_union": ShouldInlineUnion,
446 "is_array_kind": mojom.IsArrayKind, 446 "is_array_kind": mojom.IsArrayKind,
447 "is_cloneable_kind": IsCloneableKind, 447 "is_cloneable_kind": IsCloneableKind,
448 "is_enum_kind": mojom.IsEnumKind, 448 "is_enum_kind": mojom.IsEnumKind,
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 _for_blink = self.for_blink 526 _for_blink = self.for_blink
527 global _variant 527 global _variant
528 _variant = self.variant 528 _variant = self.variant
529 suffix = "-%s" % self.variant if self.variant else "" 529 suffix = "-%s" % self.variant if self.variant else ""
530 self.Write(self.GenerateModuleHeader(), 530 self.Write(self.GenerateModuleHeader(),
531 self.MatchMojomFilePath("%s%s.h" % (self.module.name, suffix))) 531 self.MatchMojomFilePath("%s%s.h" % (self.module.name, suffix)))
532 self.Write(self.GenerateModuleInternalHeader(), 532 self.Write(self.GenerateModuleInternalHeader(),
533 self.MatchMojomFilePath("%s%s-internal.h" % (self.module.name, suffix))) 533 self.MatchMojomFilePath("%s%s-internal.h" % (self.module.name, suffix)))
534 self.Write(self.GenerateModuleSource(), 534 self.Write(self.GenerateModuleSource(),
535 self.MatchMojomFilePath("%s%s.cc" % (self.module.name, suffix))) 535 self.MatchMojomFilePath("%s%s.cc" % (self.module.name, suffix)))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698