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 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 for struct in self.module.structs + self.module.unions: | 271 for struct in self.module.structs + self.module.unions: |
272 for field in struct.fields: | 272 for field in struct.fields: |
273 yield field.kind | 273 yield field.kind |
274 | 274 |
275 for interface in self.module.interfaces: | 275 for interface in self.module.interfaces: |
276 for method in interface.methods: | 276 for method in interface.methods: |
277 for param in method.parameters + (method.response_parameters or []): | 277 for param in method.parameters + (method.response_parameters or []): |
278 yield param.kind | 278 yield param.kind |
279 | 279 |
280 def _GetJinjaExports(self): | 280 def _GetJinjaExports(self): |
281 structs = self.GetStructs() | |
282 interfaces = self.GetInterfaces() | |
283 all_enums = list(self.module.enums) | 281 all_enums = list(self.module.enums) |
284 for struct in structs: | 282 for struct in self.module.structs: |
285 all_enums.extend(struct.enums) | 283 all_enums.extend(struct.enums) |
286 for interface in interfaces: | 284 for interface in self.module.interfaces: |
287 all_enums.extend(interface.enums) | 285 all_enums.extend(interface.enums) |
288 | 286 |
289 return { | 287 return { |
290 "module": self.module, | 288 "module": self.module, |
291 "namespace": self.module.namespace, | 289 "namespace": self.module.namespace, |
292 "namespaces_as_array": NamespaceToArray(self.module.namespace), | 290 "namespaces_as_array": NamespaceToArray(self.module.namespace), |
293 "imports": self.module.imports, | 291 "imports": self.module.imports, |
294 "kinds": self.module.kinds, | 292 "kinds": self.module.kinds, |
295 "enums": self.module.enums, | 293 "enums": self.module.enums, |
296 "all_enums": all_enums, | 294 "all_enums": all_enums, |
297 "structs": structs, | 295 "structs": self.module.structs, |
298 "unions": self.GetUnions(), | 296 "unions": self.module.unions, |
299 "interfaces": interfaces, | 297 "interfaces": self.module.interfaces, |
300 "variant": self.variant, | 298 "variant": self.variant, |
301 "extra_traits_headers": self._GetExtraTraitsHeaders(), | 299 "extra_traits_headers": self._GetExtraTraitsHeaders(), |
302 "extra_public_headers": self._GetExtraPublicHeaders(), | 300 "extra_public_headers": self._GetExtraPublicHeaders(), |
303 "for_blink": self.for_blink, | 301 "for_blink": self.for_blink, |
304 "use_once_callback": self.use_once_callback, | 302 "use_once_callback": self.use_once_callback, |
305 "export_attribute": self.export_attribute, | 303 "export_attribute": self.export_attribute, |
306 "export_header": self.export_header, | 304 "export_header": self.export_header, |
307 } | 305 } |
308 | 306 |
309 @staticmethod | 307 @staticmethod |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 "is_map_kind": mojom.IsMapKind, | 347 "is_map_kind": mojom.IsMapKind, |
350 "is_nullable_kind": mojom.IsNullableKind, | 348 "is_nullable_kind": mojom.IsNullableKind, |
351 "is_object_kind": mojom.IsObjectKind, | 349 "is_object_kind": mojom.IsObjectKind, |
352 "is_reference_kind": mojom.IsReferenceKind, | 350 "is_reference_kind": mojom.IsReferenceKind, |
353 "is_string_kind": mojom.IsStringKind, | 351 "is_string_kind": mojom.IsStringKind, |
354 "is_struct_kind": mojom.IsStructKind, | 352 "is_struct_kind": mojom.IsStructKind, |
355 "is_typemapped_kind": self._IsTypemappedKind, | 353 "is_typemapped_kind": self._IsTypemappedKind, |
356 "is_union_kind": mojom.IsUnionKind, | 354 "is_union_kind": mojom.IsUnionKind, |
357 "passes_associated_kinds": mojom.PassesAssociatedKinds, | 355 "passes_associated_kinds": mojom.PassesAssociatedKinds, |
358 "struct_constructors": self._GetStructConstructors, | 356 "struct_constructors": self._GetStructConstructors, |
359 "under_to_camel": generator.UnderToCamel, | 357 "under_to_camel": generator.ToCamel, |
360 "unmapped_type_for_serializer": self._GetUnmappedTypeForSerializer, | 358 "unmapped_type_for_serializer": self._GetUnmappedTypeForSerializer, |
361 "wtf_hash_fn_name_for_enum": GetWtfHashFnNameForEnum, | 359 "wtf_hash_fn_name_for_enum": GetWtfHashFnNameForEnum, |
362 } | 360 } |
363 return cpp_filters | 361 return cpp_filters |
364 | 362 |
365 @UseJinja("module.h.tmpl") | 363 @UseJinja("module.h.tmpl") |
366 def _GenerateModuleHeader(self): | 364 def _GenerateModuleHeader(self): |
367 return self._GetJinjaExports() | 365 return self._GetJinjaExports() |
368 | 366 |
369 @UseJinja("module.cc.tmpl") | 367 @UseJinja("module.cc.tmpl") |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
797 if mojom.IsDataPipeProducerKind(kind): | 795 if mojom.IsDataPipeProducerKind(kind): |
798 return "mojo::ScopedDataPipeProducerHandle" | 796 return "mojo::ScopedDataPipeProducerHandle" |
799 if mojom.IsMessagePipeKind(kind): | 797 if mojom.IsMessagePipeKind(kind): |
800 return "mojo::ScopedMessagePipeHandle" | 798 return "mojo::ScopedMessagePipeHandle" |
801 if mojom.IsSharedBufferKind(kind): | 799 if mojom.IsSharedBufferKind(kind): |
802 return "mojo::ScopedSharedBufferHandle" | 800 return "mojo::ScopedSharedBufferHandle" |
803 return _kind_to_cpp_type[kind] | 801 return _kind_to_cpp_type[kind] |
804 | 802 |
805 def _GetUnmappedTypeForSerializer(self, kind): | 803 def _GetUnmappedTypeForSerializer(self, kind): |
806 return self._GetCppDataViewType(kind, qualified=True) | 804 return self._GetCppDataViewType(kind, qualified=True) |
OLD | NEW |