| OLD | NEW |
| (Empty) |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 {%- macro writeMojomTypeDef(type, typepkg, pkg) -%} | |
| 6 {%- if type|is_enum_kind -%} | |
| 7 {{typepkg}}MojomEnum _{{type|mojom_type_identifier|lower_camel}}() { | |
| 8 return {{ writeMojomType(type, typepkg, pkg) }}; | |
| 9 } | |
| 10 {%- elif type|is_struct_kind -%} | |
| 11 {{typepkg}}MojomStruct _{{type|mojom_type_identifier|lower_camel}}() { | |
| 12 return {{ writeMojomType(type, typepkg, pkg) }}; | |
| 13 } | |
| 14 {%- elif type|is_union_kind -%} | |
| 15 {{typepkg}}MojomUnion _{{type|mojom_type_identifier|lower_camel}}() { | |
| 16 return {{ writeMojomType(type, typepkg, pkg) }}; | |
| 17 } | |
| 18 {%- elif type|is_interface_kind -%} | |
| 19 {{typepkg}}MojomInterface _{{type|mojom_type_identifier|lower_camel}}() { | |
| 20 return new {{typepkg}}MojomInterface() | |
| 21 ..declData = (new {{typepkg}}DeclarationData() | |
| 22 ..shortName = '{{type|mojom_type_name|upper_camel}}' | |
| 23 ..fullIdentifier = '{{type|fullidentifier}}') | |
| 24 ..serviceName_ = '{{type|name}}' | |
| 25 ..methods = <int, {{typepkg}}MojomMethod>{ | |
| 26 {%- for method in type.methods %} | |
| 27 _{{type|name}}_{{method|name}}Name: new {{typepkg}}MojomMethod() | |
| 28 ..declData = (new {{typepkg}}DeclarationData() | |
| 29 ..shortName = '{{method|mojom_type_name|upper_camel}}') | |
| 30 ..ordinal = _{{type|name}}_{{method|name}}Name | |
| 31 {%- if method.response_parameters != None %} | |
| 32 ..responseParams = _{{method.response_param_struct|mojom_type_identifier
|lower_camel}}() | |
| 33 {%- endif %} | |
| 34 ..parameters = _{{method.param_struct|mojom_type_identifier|lower_camel}
}(), | |
| 35 {%- endfor %} | |
| 36 }; | |
| 37 } | |
| 38 {%- else -%} | |
| 39 {{ raise("Bad type name given: {{type|name}}") }} | |
| 40 {%- endif -%} | |
| 41 {%- endmacro -%} | |
| 42 | |
| 43 | |
| 44 {%- macro writeMojomType(type, typepkg, pkg, topLevel=true) -%} | |
| 45 {%- if type|is_numerical_kind -%}{#- bool, int, and uint case -#} | |
| 46 new {{typepkg}}Type() | |
| 47 ..simpleType = {{typepkg}}SimpleType.{{type|simple_mojom_type_name}} | |
| 48 {%- elif type|is_any_handle_kind and not type|is_interface_request_kind -%} | |
| 49 new {{typepkg}}Type() | |
| 50 ..handleType = (new {{typepkg}}HandleType() | |
| 51 ..kind = {{typepkg}}HandleTypeKind.{{type|simple_mojom_type_name}} | |
| 52 {%- if type|is_nullable_kind %} | |
| 53 ..nullable = true | |
| 54 {% endif %}) | |
| 55 {%- elif type|is_string_kind -%} | |
| 56 new {{typepkg}}Type() | |
| 57 ..stringType = (new {{typepkg}}StringType() | |
| 58 {%- if type|is_nullable_kind %} | |
| 59 ..nullable = true | |
| 60 {% endif %}) | |
| 61 {%- elif type|is_array_kind -%} | |
| 62 {{writeTypeArrayType(type, typepkg, pkg)}} | |
| 63 {%- elif type|is_map_kind -%} | |
| 64 {{writeTypeMapType(type, typepkg, pkg)}} | |
| 65 {%- elif type|is_enum_kind or type|is_struct_kind or type|is_union_kind -%} | |
| 66 {%- if topLevel -%} | |
| 67 {%- if type|is_enum_kind -%} | |
| 68 {{writeMojomEnumType(type, typepkg, pkg)}} | |
| 69 {%- elif type|is_struct_kind -%} | |
| 70 {{writeMojomStructType(type, typepkg, pkg)}} | |
| 71 {%- else -%} {#- Must be a union -#} | |
| 72 {{writeMojomUnionType(type, typepkg, pkg)}} | |
| 73 {%- endif -%} | |
| 74 {%- else -%} | |
| 75 {{writeTypeTypeReference(type, typepkg, pkg)}} | |
| 76 {%- endif -%} | |
| 77 {%- elif type|is_interface_kind or type|is_interface_request_kind -%} | |
| 78 {{writeTypeTypeReference(type, typepkg, pkg)}} | |
| 79 {%- else -%} | |
| 80 {{ raise("Unsupported type: {{type|name}}") }} | |
| 81 {%- endif -%} | |
| 82 {%- endmacro -%} | |
| 83 | |
| 84 {%- macro writeTypeArrayType(type, typepkg, pkg) -%} | |
| 85 new {{typepkg}}Type() | |
| 86 ..arrayType = (new {{typepkg}}ArrayType() | |
| 87 {%- if type|is_nullable_kind %} | |
| 88 ..nullable = true | |
| 89 {%- endif %} | |
| 90 {%- if type.length is not none %} | |
| 91 ..fixedLength = {{type.length}} | |
| 92 {%- endif %} | |
| 93 ..elementType = ({{writeMojomType(type.kind, typepkg, pkg, false)|indent(1
0)}})) | |
| 94 {%- endmacro -%} | |
| 95 | |
| 96 {%- macro writeTypeMapType(type, typepkg, pkg) -%} | |
| 97 new {{typepkg}}Type() | |
| 98 ..mapType = (new {{typepkg}}MapType() | |
| 99 {%- if type|is_nullable_kind %} | |
| 100 ..nullable = true | |
| 101 {% endif %} | |
| 102 ..keyType = ({{writeMojomType(type.key_kind, typepkg, pkg, false)|indent(1
0)}}) | |
| 103 ..valueType = ({{writeMojomType(type.value_kind, typepkg, pkg, false)|inde
nt(10)}})) | |
| 104 {%- endmacro -%} | |
| 105 | |
| 106 {%- macro writeMojomEnumType(type, typepkg, pkg) -%} | |
| 107 new {{typepkg}}MojomEnum() | |
| 108 ..declData = (new {{typepkg}}DeclarationData() | |
| 109 ..shortName = '{{type|mojom_type_name|upper_camel}}' | |
| 110 ..fullIdentifier = '{{type|fullidentifier}}') | |
| 111 ..values = <{{typepkg}}EnumValue>[ | |
| 112 {%- for field in type.fields %} | |
| 113 new {{typepkg}}EnumValue() | |
| 114 ..declData = (new {{typepkg}}DeclarationData() | |
| 115 ..shortName = '{{field|mojom_type_name|upper_camel}}') | |
| 116 ..enumTypeKey = {{writePackagedTypeID(type)}} | |
| 117 ..intValue = {{field.numeric_value}}, | |
| 118 {%- endfor -%} | |
| 119 ] | |
| 120 {%- endmacro -%} | |
| 121 | |
| 122 | |
| 123 {%- macro writeTypeTypeReference(type, typepkg, pkg) -%} | |
| 124 new {{typepkg}}Type() | |
| 125 ..typeReference = ({{writeTypeReference(type, typepkg, pkg)}}) | |
| 126 {%- endmacro -%} | |
| 127 | |
| 128 {%- macro writeTypeReference(type, typepkg, pkg) -%} | |
| 129 new {{typepkg}}TypeReference() | |
| 130 {%- if type|is_nullable_kind %} | |
| 131 ..nullable = true | |
| 132 {% endif %} | |
| 133 {%- if type|is_interface_request_kind %}{# Interface request collapses to inte
rface. #} | |
| 134 ..isInterfaceRequest = true | |
| 135 ..identifier = {{writePackagedTypeID(type.kind)}} | |
| 136 ..typeKey = {{writePackagedTypeID(type.kind)}} | |
| 137 {% else %} | |
| 138 ..identifier = {{writePackagedTypeID(type)}} | |
| 139 ..typeKey = {{writePackagedTypeID(type)}} | |
| 140 {% endif -%} | |
| 141 {%- endmacro -%} | |
| 142 | |
| 143 {%- macro writePackagedTypeID(type) -%} | |
| 144 '{{type|mojom_type_identifier}}' | |
| 145 {%- endmacro -%} | |
| 146 | |
| 147 {%- macro writeMojomStructType(type, typepkg, pkg) -%} | |
| 148 new {{typepkg}}MojomStruct() | |
| 149 ..declData = (new {{typepkg}}DeclarationData() | |
| 150 ..shortName = '{{type|mojom_type_name|upper_camel}}' | |
| 151 ..fullIdentifier = '{{type|fullidentifier}}') | |
| 152 {%- if type|is_nullable_kind %} | |
| 153 ..nullable = true | |
| 154 {% endif %} | |
| 155 ..fields = <{{typepkg}}StructField>[ | |
| 156 {%- for field in type.fields %} | |
| 157 new {{typepkg}}StructField() | |
| 158 ..declData = (new {{typepkg}}DeclarationData() | |
| 159 ..shortName = '{{field|mojom_type_name|upper_camel}}') | |
| 160 ..type = ({{writeMojomType(field.kind, typepkg, pkg, false)|indent(6)}})
, | |
| 161 {%- endfor -%} | |
| 162 ] | |
| 163 {%- endmacro -%} | |
| 164 | |
| 165 {%- macro writeMojomUnionType(type, typepkg, pkg) -%} | |
| 166 new {{typepkg}}MojomUnion() | |
| 167 ..declData = (new {{typepkg}}DeclarationData() | |
| 168 ..shortName = '{{type|mojom_type_name|upper_camel}}' | |
| 169 ..fullIdentifier = '{{type|fullidentifier}}') | |
| 170 {%- if type|is_nullable_kind %} | |
| 171 ..nullable = true | |
| 172 {% endif %} | |
| 173 ..fields = <{{typepkg}}UnionField>[ | |
| 174 {%- for field in type.fields %} | |
| 175 new {{typepkg}}UnionField() | |
| 176 ..declData = (new {{typepkg}}DeclarationData() | |
| 177 ..shortName = '{{field|name|upper_camel}}') | |
| 178 ..type = ({{writeMojomType(field.kind, typepkg, pkg, false)|indent(6)}}) | |
| 179 ..tag = {{field.ordinal}}, | |
| 180 {%- endfor -%} | |
| 181 ] | |
| 182 {%- endmacro -%} | |
| OLD | NEW |