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

Side by Side Diff: mojom/generators/go/translator/translator.go

Issue 2077113002: Handle interfaces with a ServiceName in the go bindings generator. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Fix names issue. 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
« no previous file with comments | « mojom/generators/go/translator/names.go ('k') | mojom/generators/go/translator/types.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 translator 5 package translator
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "log" 9 "log"
10 "sort" 10 "sort"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 enumNum := len(*file.DeclaredMojomObjects.EmbeddedEnums) + topLevelEnums Num 50 enumNum := len(*file.DeclaredMojomObjects.EmbeddedEnums) + topLevelEnums Num
51 tmplFile.Enums = make([]*EnumTemplate, enumNum) 51 tmplFile.Enums = make([]*EnumTemplate, enumNum)
52 for i, typeKey := range *file.DeclaredMojomObjects.TopLevelEnums { 52 for i, typeKey := range *file.DeclaredMojomObjects.TopLevelEnums {
53 tmplFile.Enums[i] = t.translateMojomEnum(typeKey) 53 tmplFile.Enums[i] = t.translateMojomEnum(typeKey)
54 } 54 }
55 55
56 for i, typeKey := range *file.DeclaredMojomObjects.EmbeddedEnums { 56 for i, typeKey := range *file.DeclaredMojomObjects.EmbeddedEnums {
57 tmplFile.Enums[i+topLevelEnumsNum] = t.translateMojomEnum(typeKe y) 57 tmplFile.Enums[i+topLevelEnumsNum] = t.translateMojomEnum(typeKe y)
58 } 58 }
59 59
60 tmplFile.Interfaces = make([]*InterfaceTemplate, len(*file.DeclaredMojom Objects.Interfaces))
61 for i, typeKey := range *file.DeclaredMojomObjects.Interfaces {
62 tmplFile.Interfaces[i] = t.translateMojomInterface(typeKey)
63 }
64
60 tmplFile.Imports = []Import{ 65 tmplFile.Imports = []Import{
61 Import{PackagePath: "mojo/public/go/bindings", PackageName: "bin dings"}, 66 Import{PackagePath: "mojo/public/go/bindings", PackageName: "bin dings"},
62 Import{PackagePath: "fmt", PackageName: "fmt"}, 67 Import{PackagePath: "fmt", PackageName: "fmt"},
63 Import{PackagePath: "sort", PackageName: "sort"}, 68 Import{PackagePath: "sort", PackageName: "sort"},
64 } 69 }
65 return tmplFile 70 return tmplFile
66 } 71 }
67 72
68 func (t *translator) GetUserDefinedType(typeKey string) (mojomType mojom_types.U serDefinedType) { 73 func (t *translator) GetUserDefinedType(typeKey string) (mojomType mojom_types.U serDefinedType) {
69 return t.fileGraph.ResolvedTypes[typeKey] 74 return t.fileGraph.ResolvedTypes[typeKey]
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 func (t *translator) translateMojomInterface(typeKey string) (m *InterfaceTempla te) { 171 func (t *translator) translateMojomInterface(typeKey string) (m *InterfaceTempla te) {
167 m = new(InterfaceTemplate) 172 m = new(InterfaceTemplate)
168 i := t.GetUserDefinedType(typeKey) 173 i := t.GetUserDefinedType(typeKey)
169 mojomInterface, ok := i.Interface().(mojom_types.MojomInterface) 174 mojomInterface, ok := i.Interface().(mojom_types.MojomInterface)
170 if !ok { 175 if !ok {
171 log.Panicf("%s is not an interface.", userDefinedTypeShortName(i )) 176 log.Panicf("%s is not an interface.", userDefinedTypeShortName(i ))
172 } 177 }
173 178
174 m.Name = t.goTypeName(typeKey) 179 m.Name = t.goTypeName(typeKey)
175 m.PrivateName = privateName(m.Name) 180 m.PrivateName = privateName(m.Name)
181 m.ServiceName = mojomInterface.ServiceName
176 182
177 for _, mojomMethod := range mojomInterface.Methods { 183 for _, mojomMethod := range mojomInterface.Methods {
178 m.Methods = append(m.Methods, *t.translateMojomMethod(mojomMetho d, m)) 184 m.Methods = append(m.Methods, *t.translateMojomMethod(mojomMetho d, m))
179 } 185 }
180 186
181 return m 187 return m
182 } 188 }
183 189
184 func (t *translator) translateMojomMethod(mojomMethod mojom_types.MojomMethod, i nterfaceTemplate *InterfaceTemplate) (m *MethodTemplate) { 190 func (t *translator) translateMojomMethod(mojomMethod mojom_types.MojomMethod, i nterfaceTemplate *InterfaceTemplate) (m *MethodTemplate) {
185 m = new(MethodTemplate) 191 m = new(MethodTemplate)
(...skipping 24 matching lines...) Expand all
210 if s[i].Offset == s[j].Offset && s[i].Bit < s[j].Bit { 216 if s[i].Offset == s[j].Offset && s[i].Bit < s[j].Bit {
211 return true 217 return true
212 } 218 }
213 219
214 return false 220 return false
215 } 221 }
216 222
217 func (s structFieldSerializationSorter) Swap(i, j int) { 223 func (s structFieldSerializationSorter) Swap(i, j int) {
218 s[i], s[j] = s[j], s[i] 224 s[i], s[j] = s[j], s[i]
219 } 225 }
OLDNEW
« no previous file with comments | « mojom/generators/go/translator/names.go ('k') | mojom/generators/go/translator/types.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698