| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |