| 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 """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 231 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  242     if mojom.IsMoveOnlyKind(field.kind): |  242     if mojom.IsMoveOnlyKind(field.kind): | 
|  243       return False |  243       return False | 
|  244   return True |  244   return True | 
|  245  |  245  | 
|  246 def GetArrayValidateParams(kind): |  246 def GetArrayValidateParams(kind): | 
|  247   if not mojom.IsAnyArrayKind(kind) and not mojom.IsStringKind(kind): |  247   if not mojom.IsAnyArrayKind(kind) and not mojom.IsStringKind(kind): | 
|  248     return "mojo::internal::NoValidateParams" |  248     return "mojo::internal::NoValidateParams" | 
|  249  |  249  | 
|  250   if mojom.IsStringKind(kind): |  250   if mojom.IsStringKind(kind): | 
|  251     expected_num_elements = 0 |  251     expected_num_elements = 0 | 
|  252     element_nullable = False |  252     element_is_nullable = False | 
|  253     element_validate_params = "mojo::internal::NoValidateParams" |  253     element_validate_params = "mojo::internal::NoValidateParams" | 
|  254   else: |  254   else: | 
|  255     expected_num_elements = generator.ExpectedArraySize(kind) |  255     expected_num_elements = generator.ExpectedArraySize(kind) | 
|  256     element_nullable = mojom.IsNullableKind(kind.kind) |  256     element_is_nullable = mojom.IsNullableKind(kind.kind) | 
|  257     element_validate_params = GetArrayValidateParams(kind.kind) |  257     element_validate_params = GetArrayValidateParams(kind.kind) | 
|  258  |  258  | 
|  259   return "mojo::internal::ArrayValidateParams<%d, %s,\n%s> " % ( |  259   return "mojo::internal::ArrayValidateParams<%d, %s,\n%s> " % ( | 
|  260       expected_num_elements, |  260       expected_num_elements, | 
|  261       'true' if element_nullable else 'false', |  261       'true' if element_is_nullable else 'false', | 
|  262       element_validate_params) |  262       element_validate_params) | 
|  263  |  263  | 
|  264 _HEADER_SIZE = 8 |  264 _HEADER_SIZE = 8 | 
|  265  |  265  | 
|  266 class Generator(generator.Generator): |  266 class Generator(generator.Generator): | 
|  267  |  267  | 
|  268   cpp_filters = { |  268   cpp_filters = { | 
|  269     "constant_value": ConstantValue, |  269     "constant_value": ConstantValue, | 
|  270     "cpp_const_wrapper_type": GetCppConstWrapperType, |  270     "cpp_const_wrapper_type": GetCppConstWrapperType, | 
|  271     "cpp_field_type": GetCppFieldType, |  271     "cpp_field_type": GetCppFieldType, | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  320  |  320  | 
|  321   @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters) |  321   @UseJinja("cpp_templates/module.cc.tmpl", filters=cpp_filters) | 
|  322   def GenerateModuleSource(self): |  322   def GenerateModuleSource(self): | 
|  323     return self.GetJinjaExports() |  323     return self.GetJinjaExports() | 
|  324  |  324  | 
|  325   def GenerateFiles(self, args): |  325   def GenerateFiles(self, args): | 
|  326     self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name) |  326     self.Write(self.GenerateModuleHeader(), "%s.h" % self.module.name) | 
|  327     self.Write(self.GenerateModuleInternalHeader(), |  327     self.Write(self.GenerateModuleInternalHeader(), | 
|  328         "%s-internal.h" % self.module.name) |  328         "%s-internal.h" % self.module.name) | 
|  329     self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) |  329     self.Write(self.GenerateModuleSource(), "%s.cc" % self.module.name) | 
| OLD | NEW |