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 JavaScript source files from a mojom.Module.""" | 5 """Generates JavaScript 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 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 if mojom.IsInterfaceKind(kind): | 126 if mojom.IsInterfaceKind(kind): |
127 return "codec.%s" % ("NullableInterface" if mojom.IsNullableKind(kind) | 127 return "codec.%s" % ("NullableInterface" if mojom.IsNullableKind(kind) |
128 else "Interface") | 128 else "Interface") |
129 if mojom.IsInterfaceRequestKind(kind): | 129 if mojom.IsInterfaceRequestKind(kind): |
130 return CodecType(mojom.MSGPIPE) | 130 return CodecType(mojom.MSGPIPE) |
131 if mojom.IsAssociatedInterfaceKind(kind): | 131 if mojom.IsAssociatedInterfaceKind(kind): |
132 return "codec.AssociatedInterfaceNotSupported" | 132 return "codec.AssociatedInterfaceNotSupported" |
133 if mojom.IsAssociatedInterfaceRequestKind(kind): | 133 if mojom.IsAssociatedInterfaceRequestKind(kind): |
134 return "codec.AssociatedInterfaceRequestNotSupported" | 134 return "codec.AssociatedInterfaceRequestNotSupported" |
135 if mojom.IsEnumKind(kind): | 135 if mojom.IsEnumKind(kind): |
136 element_type = kind.name | 136 return "new codec.Enum(%s)" % JavaScriptType(kind) |
137 return "new codec.Enum(%s)" % (element_type) | |
138 if mojom.IsMapKind(kind): | 137 if mojom.IsMapKind(kind): |
139 map_type = "NullableMapOf" if mojom.IsNullableKind(kind) else "MapOf" | 138 map_type = "NullableMapOf" if mojom.IsNullableKind(kind) else "MapOf" |
140 key_type = ElementCodecType(kind.key_kind) | 139 key_type = ElementCodecType(kind.key_kind) |
141 value_type = ElementCodecType(kind.value_kind) | 140 value_type = ElementCodecType(kind.value_kind) |
142 return "new codec.%s(%s, %s)" % (map_type, key_type, value_type) | 141 return "new codec.%s(%s, %s)" % (map_type, key_type, value_type) |
143 raise Exception("No codec type for %s" % kind) | 142 raise Exception("No codec type for %s" % kind) |
144 | 143 |
145 | 144 |
146 def ElementCodecType(kind): | 145 def ElementCodecType(kind): |
147 return "codec.PackedBool" if mojom.IsBoolKind(kind) else CodecType(kind) | 146 return "codec.PackedBool" if mojom.IsBoolKind(kind) else CodecType(kind) |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 return self.module.imports | 452 return self.module.imports |
454 | 453 |
455 def GetImportedInterfaces(self): | 454 def GetImportedInterfaces(self): |
456 interface_to_import = {}; | 455 interface_to_import = {}; |
457 for each_import in self.module.imports: | 456 for each_import in self.module.imports: |
458 for each_interface in each_import["module"].interfaces: | 457 for each_interface in each_import["module"].interfaces: |
459 name = each_interface.name | 458 name = each_interface.name |
460 interface_to_import[name] = each_import["unique_name"] + "." + name | 459 interface_to_import[name] = each_import["unique_name"] + "." + name |
461 return interface_to_import; | 460 return interface_to_import; |
462 | 461 |
OLD | NEW |