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

Side by Side Diff: mojo/public/tools/bindings/generators/go_templates/mojom_type_macros.tmpl

Issue 1483313002: go generator: generate full identifiers (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years 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 2015 The Chromium Authors. All rights reserved. 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 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 {%- macro writeMojomType(typepkg, type, pkg, exported=true, topLevel=true) -%} 5 {%- macro writeMojomType(typepkg, type, pkg, exported=true, topLevel=true) -%}
6 {%- if type|identifier|identifier_check('WriteMojomType') -%} {#- Already printe d out -#} 6 {%- if type|identifier|identifier_check('WriteMojomType') -%} {#- Already printe d out -#}
7 {{writeTypeTypeReference(typepkg, type, pkg)}} 7 {{writeTypeTypeReference(typepkg, type, pkg)}}
8 {%- else -%} 8 {%- else -%}
9 9
10 {%- if type|mojom_type(typepkg) != "" -%}{#- simple kind case -#} 10 {%- if type|mojom_type(typepkg) != "" -%}{#- simple kind case -#}
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 {%- if type|package != '' -%}{{type|package}}.{%- endif -%}ID_{{type|mojom_type_ identifier}} 61 {%- if type|package != '' -%}{{type|package}}.{%- endif -%}ID_{{type|mojom_type_ identifier}}
62 {%- endmacro -%} 62 {%- endmacro -%}
63 63
64 64
65 {%- macro writeMojomTypeDef(typepkg, type, pkg, exported=True) -%} 65 {%- macro writeMojomTypeDef(typepkg, type, pkg, exported=True) -%}
66 {%- if should_gen_mojom_types -%} 66 {%- if should_gen_mojom_types -%}
67 {%- if type|is_enum -%} 67 {%- if type|is_enum -%}
68 // String names and labels used by the MojomEnum types. 68 // String names and labels used by the MojomEnum types.
69 var ( 69 var (
70 enumName_{{type|name}} = "{{type|name}}" 70 enumName_{{type|name}} = "{{type|name}}"
71 enumFullIdentifier_{{type|name}} = "{{type|fullidentifier}}"
71 {% for field in type.fields %} 72 {% for field in type.fields %}
72 enumFieldName_{{type|name}}_{{field|name}} = "{{field|name}}" 73 enumFieldName_{{type|name}}_{{field|name}} = "{{field|name}}"
73 {% endfor %} 74 {% endfor %}
74 ) 75 )
75 76
76 func {{type|mojom_type_identifier}}() {{typepkg}}MojomEnum { 77 func {{type|mojom_type_identifier}}() {{typepkg}}MojomEnum {
77 return {{ writeMojomType(typepkg, type, pkg, exported) }} 78 return {{ writeMojomType(typepkg, type, pkg, exported) }}
78 } 79 }
79 {%- elif type|is_struct -%} 80 {%- elif type|is_struct -%}
80 // String names and labels used by the MojomStruct types. 81 // String names and labels used by the MojomStruct types.
81 var ( 82 var (
82 structName_{{type|name}} = "{{type|name}}" 83 structName_{{type|name}} = "{{type|name}}"
84 structFullIdentifier_{{type|name}} = "{{type|fullidentifier}}"
83 {% for field in type.fields %} 85 {% for field in type.fields %}
84 structFieldName_{{type|name}}_{{field|name}} = "{{field|name}}" 86 structFieldName_{{type|name}}_{{field|name}} = "{{field|name}}"
85 {% endfor %} 87 {% endfor %}
86 ) 88 )
87 89
88 func {{type|mojom_type_identifier}}() {{typepkg}}MojomStruct { 90 func {{type|mojom_type_identifier}}() {{typepkg}}MojomStruct {
89 return {{ writeMojomType(typepkg, type, pkg, exported) }} 91 return {{ writeMojomType(typepkg, type, pkg, exported) }}
90 } 92 }
91 {%- elif type|is_union -%} 93 {%- elif type|is_union -%}
92 // String names and labels used by the MojomUnion types. 94 // String names and labels used by the MojomUnion types.
93 var ( 95 var (
94 unionName_{{type|name}} = "{{type|name}}" 96 unionName_{{type|name}} = "{{type|name}}"
97 unionFullIdentifier_{{type|name}} = "{{type|fullidentifier}}"
95 {% for field in type.fields %} 98 {% for field in type.fields %}
96 unionFieldName_{{type|name}}_{{field|name}} = "{{field|name}}" 99 unionFieldName_{{type|name}}_{{field|name}} = "{{field|name}}"
97 {% endfor %} 100 {% endfor %}
98 ) 101 )
99 102
100 func {{type|mojom_type_identifier}}() {{typepkg}}MojomUnion { 103 func {{type|mojom_type_identifier}}() {{typepkg}}MojomUnion {
101 return {{ writeMojomType(typepkg, type, pkg, exported) }} 104 return {{ writeMojomType(typepkg, type, pkg, exported) }}
102 } 105 }
103 {%- elif type|is_interface -%} 106 {%- elif type|is_interface -%}
104 var ( 107 var (
105 interfaceName_{{type|name}} = "{{type|name}}" 108 interfaceName_{{type|name}} = "{{type|name}}"
109 interfaceFullIdentifier_{{type|name}} = "{{type|fullidentifier}}"
106 {% for method in type.methods %} 110 {% for method in type.methods %}
107 interfaceMethodName_{{type|name}}_{{method|name}} = "{{method|name}}" 111 interfaceMethodName_{{type|name}}_{{method|name}} = "{{method|name}}"
108 {% endfor %} 112 {% endfor %}
109 ) 113 )
110 114
111 func {{type|mojom_type_identifier}}() {{typepkg}}MojomInterface { 115 func {{type|mojom_type_identifier}}() {{typepkg}}MojomInterface {
112 responseParamsMap := make(map[string]*{{typepkg}}MojomStruct) 116 responseParamsMap := make(map[string]*{{typepkg}}MojomStruct)
113 _ = responseParamsMap // To avoid the declared but unused compiler error 117 _ = responseParamsMap // To avoid the declared but unused compiler error
114 {% for method in type.methods %} 118 {% for method in type.methods %}
115 {% if method|has_response %} 119 {% if method|has_response %}
116 mstruct_{{method|name}} := {{method.response_param_struct|mojom_type_identifie r}}() 120 mstruct_{{method|name}} := {{method.response_param_struct|mojom_type_identifie r}}()
117 responseParamsMap[interfaceMethodName_{{type|name}}_{{method|name}}] = &mstruc t_{{method|name}} 121 responseParamsMap[interfaceMethodName_{{type|name}}_{{method|name}}] = &mstruc t_{{method|name}}
118 {% endif %} 122 {% endif %}
119 {% endfor %} 123 {% endfor %}
120 return {{typepkg}}MojomInterface{ 124 return {{typepkg}}MojomInterface{
121 DeclData: &{{typepkg}}DeclarationData{ 125 DeclData: &{{typepkg}}DeclarationData{
122 ShortName: &interfaceName_{{type|name}}, 126 ShortName: &interfaceName_{{type|name}},
127 FullIdentifier: &interfaceFullIdentifier_{{type|name}},
123 }, 128 },
124 Methods: map[uint32]{{typepkg}}MojomMethod{ 129 Methods: map[uint32]{{typepkg}}MojomMethod{
125 {%- for method in type.methods -%} 130 {%- for method in type.methods -%}
126 {{type|name(False)}}_{{method|name}}_Name: {{typepkg}}MojomMethod{ 131 {{type|name(False)}}_{{method|name}}_Name: {{typepkg}}MojomMethod{
127 DeclData: &{{typepkg}}DeclarationData{ 132 DeclData: &{{typepkg}}DeclarationData{
128 ShortName: &interfaceMethodName_{{type|name}}_{{method|name}}, 133 ShortName: &interfaceMethodName_{{type|name}}_{{method|name}},
129 }, 134 },
130 Parameters: {{method.param_struct|mojom_type_identifier}}(), 135 Parameters: {{method.param_struct|mojom_type_identifier}}(),
131 ResponseParams: responseParamsMap[interfaceMethodName_{{type|name}}_{{me thod|name}}], 136 ResponseParams: responseParamsMap[interfaceMethodName_{{type|name}}_{{me thod|name}}],
132 }, 137 },
(...skipping 30 matching lines...) Expand all
163 KeyType: {{writeMojomType(typepkg, type.key_kind, pkg, exported, false)}}, 168 KeyType: {{writeMojomType(typepkg, type.key_kind, pkg, exported, false)}},
164 ValueType: {{writeMojomType(typepkg, type.value_kind, pkg, exported, false )}}, 169 ValueType: {{writeMojomType(typepkg, type.value_kind, pkg, exported, false )}},
165 }, 170 },
166 } 171 }
167 {%- endmacro -%} 172 {%- endmacro -%}
168 173
169 {%- macro writeMojomEnumType(typepkg, type, pkg, exported) -%} 174 {%- macro writeMojomEnumType(typepkg, type, pkg, exported) -%}
170 {{typepkg}}MojomEnum{ 175 {{typepkg}}MojomEnum{
171 DeclData: &{{typepkg}}DeclarationData{ 176 DeclData: &{{typepkg}}DeclarationData{
172 ShortName: &enumName_{{type|name}}, 177 ShortName: &enumName_{{type|name}},
178 FullIdentifier: &enumFullIdentifier_{{type|name}},
173 }, 179 },
174 Values: []{{typepkg}}EnumValue{ 180 Values: []{{typepkg}}EnumValue{
175 {%- for field in type.fields -%} 181 {%- for field in type.fields -%}
176 {{typepkg}}EnumValue{ 182 {{typepkg}}EnumValue{
177 DeclData: &{{typepkg}}DeclarationData{ 183 DeclData: &{{typepkg}}DeclarationData{
178 ShortName: &enumFieldName_{{type|name}}_{{field|name}}, 184 ShortName: &enumFieldName_{{type|name}}_{{field|name}},
179 }, 185 },
180 EnumTypeKey: {{writePackagedTypeID(typepkg, type, pkg)}}, 186 EnumTypeKey: {{writePackagedTypeID(typepkg, type, pkg)}},
181 IntValue: int32({{field.numeric_value}}), 187 IntValue: int32({{field.numeric_value}}),
182 }, 188 },
183 {%- endfor -%} 189 {%- endfor -%}
184 }, 190 },
185 } 191 }
186 {%- endmacro -%} 192 {%- endmacro -%}
187 193
188 194
189 {%- macro writeMojomStructType(typepkg, type, pkg, exported) -%} 195 {%- macro writeMojomStructType(typepkg, type, pkg, exported) -%}
190 {{typepkg}}MojomStruct{ 196 {{typepkg}}MojomStruct{
191 DeclData: &{{typepkg}}DeclarationData{ 197 DeclData: &{{typepkg}}DeclarationData{
192 ShortName: &structName_{{type|name}}, 198 ShortName: &structName_{{type|name}},
199 FullIdentifier: &structFullIdentifier_{{type|name}},
193 }, 200 },
194 {%- if type|is_nullable -%} 201 {%- if type|is_nullable -%}
195 Nullable: true, 202 Nullable: true,
196 {%- endif -%} 203 {%- endif -%}
197 Fields: []{{typepkg}}StructField{ 204 Fields: []{{typepkg}}StructField{
198 {%- for field in type.fields -%} 205 {%- for field in type.fields -%}
199 {{typepkg}}StructField{ 206 {{typepkg}}StructField{
200 DeclData: &{{typepkg}}DeclarationData{ 207 DeclData: &{{typepkg}}DeclarationData{
201 ShortName: &structFieldName_{{type|name}}_{{field|name}}, 208 ShortName: &structFieldName_{{type|name}}_{{field|name}},
202 }, 209 },
203 Type: {{writeMojomType(typepkg, field.kind, pkg, exported, false)}}, 210 Type: {{writeMojomType(typepkg, field.kind, pkg, exported, false)}},
204 }, 211 },
205 {%- endfor -%} 212 {%- endfor -%}
206 }, 213 },
207 } 214 }
208 {%- endmacro -%} 215 {%- endmacro -%}
209 216
210 217
211 {%- macro writeMojomUnionType(typepkg, type, pkg, exported) -%} 218 {%- macro writeMojomUnionType(typepkg, type, pkg, exported) -%}
212 {{typepkg}}MojomUnion{ 219 {{typepkg}}MojomUnion{
213 DeclData: &{{typepkg}}DeclarationData{ 220 DeclData: &{{typepkg}}DeclarationData{
214 ShortName: &unionName_{{type|name}}, 221 ShortName: &unionName_{{type|name}},
222 FullIdentifier: &unionFullIdentifier_{{type|name}},
215 }, 223 },
216 {%- if type|is_nullable -%} 224 {%- if type|is_nullable -%}
217 Nullable: true, 225 Nullable: true,
218 {%- endif -%} 226 {%- endif -%}
219 Fields: []{{typepkg}}UnionField{ 227 Fields: []{{typepkg}}UnionField{
220 {%- for field in type.fields -%} 228 {%- for field in type.fields -%}
221 {{typepkg}}UnionField{ 229 {{typepkg}}UnionField{
222 DeclData: &{{typepkg}}DeclarationData{ 230 DeclData: &{{typepkg}}DeclarationData{
223 ShortName: &unionFieldName_{{type|name}}_{{field|name}}, 231 ShortName: &unionFieldName_{{type|name}}_{{field|name}},
224 }, 232 },
225 Type: {{writeMojomType(typepkg, field.kind, pkg, exported, false)}}, 233 Type: {{writeMojomType(typepkg, field.kind, pkg, exported, false)}},
226 Tag: {{field.ordinal}}, 234 Tag: {{field.ordinal}},
227 }, 235 },
228 {%- endfor -%} 236 {%- endfor -%}
229 }, 237 },
230 } 238 }
231 {%- endmacro -%} 239 {%- endmacro -%}
OLDNEW
« no previous file with comments | « mojo/go/tests/validation_type_test.go ('k') | mojo/public/tools/bindings/generators/mojom_go_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698