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

Side by Side Diff: mojom/generators/go/templates/interfaces.go

Issue 2082173002: New go generator shakedown. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 6 months 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 package templates 5 package templates
6 6
7 import ( 7 import (
8 "text/template" 8 "text/template"
9 ) 9 )
10 10
11 const interfaceTmplText = ` 11 const interfaceTmplText = `
12 {{- define "Interface" -}} 12 {{- define "Interface" -}}
13 {{$interface := . -}} 13 {{$interface := . -}}
14 {{ template "InterfaceDecl" $interface }} 14 {{ template "InterfaceDecl" $interface }}
15 15
16 {{- range $method := $interface.Methods -}} 16 {{- range $method := $interface.Methods}}
17 {{ template "Method" $method }} 17 {{ template "Method" $method }}
18 {{- end -}} 18 {{- end}}
19 19
20 {{- if $interface.ServiceName -}} 20 {{- if $interface.ServiceName}}
21 {{ template "ServiceDecl" $interface }} 21 {{ template "ServiceDecl" $interface }}
22 {{- end -}} 22 {{- end}}
23 {{- end -}} 23 {{- end -}}
24 ` 24 `
25 25
26 const interfaceDeclTmplText = ` 26 const interfaceDeclTmplText = `
27 {{- define "InterfaceDecl" -}} 27 {{- define "InterfaceDecl" -}}
28 {{- $interface := . -}} 28 {{- $interface := . -}}
29 {{ template "InterfaceInterfaceDecl" $interface }} 29 {{ template "InterfaceInterfaceDecl" $interface }}
30 30
31 {{ template "InterfaceOtherDecl" $interface }} 31 {{ template "InterfaceOtherDecl" $interface }}
32 32
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 } 94 }
95 {{- end -}} 95 {{- end -}}
96 ` 96 `
97 97
98 const methodTmplText = ` 98 const methodTmplText = `
99 {{- define "Method" -}} 99 {{- define "Method" -}}
100 {{- $method := . -}} 100 {{- $method := . -}}
101 101
102 {{ template "MethodParams" $method }} 102 {{ template "MethodParams" $method }}
103 103
104 {{ template "MethodSignature" $method }}
105
106 {{ template "MethodFunction" $method }} 104 {{ template "MethodFunction" $method }}
107 {{- end -}} 105 {{- end -}}
108 ` 106 `
109 107
110 const methodOrdinalsTmplText = ` 108 const methodOrdinalsTmplText = `
111 {{- define "MethodOrdinals" -}} 109 {{- define "MethodOrdinals" -}}
112 {{- $interface := . -}} 110 {{- $interface := . -}}
113 {{- range $method := $interface.Methods -}} 111 {{- range $method := $interface.Methods -}}
114 const {{$method.FullName}}_Ordinal uint32 = {{$method.Ordinal}} 112 const {{$method.FullName}}_Ordinal uint32 = {{$method.Ordinal}}
115 {{end -}} 113 {{end -}}
116 {{- end -}} 114 {{- end -}}
117 ` 115 `
118 116
119 const methodParamsTmplText = ` 117 const methodParamsTmplText = `
120 {{- define "MethodParams" -}} 118 {{- define "MethodParams" -}}
121 {{- $interface := . -}} 119 {{- $interface := . -}}
122 {{ template "Struct" $interface.Params }} 120 {{ template "Struct" $interface.Params }}
123 121
124 {{- if $interface.ResponseParams -}} 122 {{- if $interface.ResponseParams}}
125 {{ template "Struct" $interface.ResponseParams }} 123 {{ template "Struct" $interface.ResponseParams }}
126 {{- end -}} 124 {{- end -}}
127 {{- end -}} 125 {{- end -}}
128 ` 126 `
129 127
130 const methodSignatureTmplText = ` 128 const methodSignatureTmplText = `
131 {{- define "MethodSignature" -}} 129 {{- define "MethodSignature" -}}
132 {{- $method := . -}} 130 {{- $method := . -}}
133 {{$method.MethodName}}( 131 {{$method.MethodName}}(
134 {{- range $field := $method.Params.Fields -}} 132 {{- range $field := $method.Params.Fields -}}
135 in{{$field.Name}} {{$field.Type}}, 133 in{{$field.Name}} {{$field.Type}},
136 {{- end -}} 134 {{- end -}}
137 ) ( 135 ) (
138 {{- if $method.ResponseParams -}} 136 {{- if $method.ResponseParams -}}
139 {{- range $field := $method.ResponseParams.Fields -}} 137 {{- range $field := $method.ResponseParams.Fields -}}
140 out{{$field.Name}} {{$field.Type}}, 138 out{{$field.Name}} {{$field.Type}},
141 {{- end -}} 139 {{- end -}}
142 {{- end -}} 140 {{- end -}}
143 err error) 141 err error)
144 {{- end -}} 142 {{- end -}}
145 ` 143 `
146 144
147 const methodFuncTmplText = ` 145 const methodFuncTmplText = `
148 {{- define "MethodFunction" -}} 146 {{- define "MethodFunction" -}}
149 {{- $method := . -}} 147 {{- $method := . -}}
150 func (p *{{$method.Interface.Name}}_Proxy) {{ template "MethodSignature" $method }} { 148 func (p *{{$method.Interface.Name}}_Proxy) {{ template "MethodSignature" $method }} {
151 » payload := &{{$method.Params}}{ 149 » payload := &{{$method.Params.Name}}{
152 {{range $param := $method.Params.Fields -}} 150 {{range $param := $method.Params.Fields -}}
153 » » {{$param.Name}}, 151 » » in{{$param.Name}},
154 {{end}} 152 {{end}}
155 } 153 }
156 154
157 header := bindings.MessageHeader{ 155 header := bindings.MessageHeader{
158 Type: {{$method.FullName}}_Ordinal, 156 Type: {{$method.FullName}}_Ordinal,
159 Flags: bindings.MessageExpectsResponseFlag, 157 Flags: bindings.MessageExpectsResponseFlag,
160 {{- if $method.ResponseParams}} 158 {{- if $method.ResponseParams}}
161 RequestId: p.ids.Count(), 159 RequestId: p.ids.Count(),
162 {{- end}} 160 {{- end}}
163 } 161 }
164 var message *bindings.Message 162 var message *bindings.Message
165 if message, err = bindings.EncodeMessage(header, payload); err != nil { 163 if message, err = bindings.EncodeMessage(header, payload); err != nil {
166 err = fmt.Errorf("can't encode request: %v", err.Error()) 164 err = fmt.Errorf("can't encode request: %v", err.Error())
167 p.Close_Proxy() 165 p.Close_Proxy()
168 return 166 return
169 } 167 }
170 {{- if $method.ResponseParams}} 168 {{if $method.ResponseParams}}
171 readResult := <-p.router.AcceptWithResponse(message) 169 readResult := <-p.router.AcceptWithResponse(message)
172 if err = readResult.Error; err != nil { 170 if err = readResult.Error; err != nil {
173 p.Close_Proxy() 171 p.Close_Proxy()
174 return 172 return
175 } 173 }
176 if readResult.Message.Header.Flags != bindings.MessageIsResponseFlag { 174 if readResult.Message.Header.Flags != bindings.MessageIsResponseFlag {
177 err = &bindings.ValidationError{bindings.MessageHeaderInvalidFla gs, 175 err = &bindings.ValidationError{bindings.MessageHeaderInvalidFla gs,
178 fmt.Sprintf("invalid message header flag: %v", readResul t.Message.Header.Flags), 176 fmt.Sprintf("invalid message header flag: %v", readResul t.Message.Header.Flags),
179 } 177 }
180 return 178 return
(...skipping 10 matching lines...) Expand all
191 return 189 return
192 } 190 }
193 {{- range $param := $method.ResponseParams.Fields}} 191 {{- range $param := $method.ResponseParams.Fields}}
194 out{{$param.Name}} = response.out{{$param.Name}} 192 out{{$param.Name}} = response.out{{$param.Name}}
195 {{- end -}} 193 {{- end -}}
196 {{- else -}} 194 {{- else -}}
197 if err = p.router.Accept(message); err != nil { 195 if err = p.router.Accept(message); err != nil {
198 p.Close_Proxy() 196 p.Close_Proxy()
199 return 197 return
200 } 198 }
201 {{end -}} 199 {{end}}
202 return 200 return
203 } 201 }
204 {{- end -}} 202 {{- end -}}
205 ` 203 `
206 204
207 const serviceDeclTmplText = ` 205 const serviceDeclTmplText = `
208 {{- define "ServiceDecl" -}} 206 {{- define "ServiceDecl" -}}
209 {{- $interface := . -}} 207 {{- $interface := . -}}
210 const {{$interface.PrivateName}}_Name string = "{{$interface.ServiceName}}" 208 const {{$interface.PrivateName}}_Name string = "{{$interface.ServiceName}}"
211 209
(...skipping 16 matching lines...) Expand all
228 template.Must(goFileTmpl.Parse(interfaceDeclTmplText)) 226 template.Must(goFileTmpl.Parse(interfaceDeclTmplText))
229 template.Must(goFileTmpl.Parse(interfaceInterfaceDeclTmplText)) 227 template.Must(goFileTmpl.Parse(interfaceInterfaceDeclTmplText))
230 template.Must(goFileTmpl.Parse(interfaceOtherDeclTmplText)) 228 template.Must(goFileTmpl.Parse(interfaceOtherDeclTmplText))
231 template.Must(goFileTmpl.Parse(serviceDeclTmplText)) 229 template.Must(goFileTmpl.Parse(serviceDeclTmplText))
232 template.Must(goFileTmpl.Parse(methodOrdinalsTmplText)) 230 template.Must(goFileTmpl.Parse(methodOrdinalsTmplText))
233 template.Must(goFileTmpl.Parse(methodParamsTmplText)) 231 template.Must(goFileTmpl.Parse(methodParamsTmplText))
234 template.Must(goFileTmpl.Parse(methodSignatureTmplText)) 232 template.Must(goFileTmpl.Parse(methodSignatureTmplText))
235 template.Must(goFileTmpl.Parse(methodFuncTmplText)) 233 template.Must(goFileTmpl.Parse(methodFuncTmplText))
236 template.Must(goFileTmpl.Parse(methodTmplText)) 234 template.Must(goFileTmpl.Parse(methodTmplText))
237 } 235 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698