| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 import mojom | 5 import mojom |
| 6 | 6 |
| 7 # mojom_data provides a mechanism to turn mojom Modules to dictionaries and | 7 # mojom_data provides a mechanism to turn mojom Modules to dictionaries and |
| 8 # back again. This can be used to persist a mojom Module created progromatically | 8 # back again. This can be used to persist a mojom Module created progromatically |
| 9 # or to read a dictionary from code or a file. | 9 # or to read a dictionary from code or a file. |
| 10 # Example: | 10 # Example: |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 istr(0, 'name'): struct.name, | 59 istr(0, 'name'): struct.name, |
| 60 istr(1, 'fields'): map(FieldToData, struct.fields) | 60 istr(1, 'fields'): map(FieldToData, struct.fields) |
| 61 } | 61 } |
| 62 | 62 |
| 63 def StructFromData(kinds, data): | 63 def StructFromData(kinds, data): |
| 64 struct = mojom.Struct() | 64 struct = mojom.Struct() |
| 65 struct.name = data['name'] | 65 struct.name = data['name'] |
| 66 struct.spec = 'x:' + struct.name | 66 struct.spec = 'x:' + struct.name |
| 67 kinds[struct.spec] = struct | 67 kinds[struct.spec] = struct |
| 68 struct.fields = map(lambda field: FieldFromData(kinds, field), data['fields']) | 68 struct.fields = map(lambda field: FieldFromData(kinds, field), data['fields']) |
| 69 struct.enums = map(lambda enum: EnumFromData(kinds, enum), data['enums']) |
| 69 return struct | 70 return struct |
| 70 | 71 |
| 71 def FieldToData(field): | 72 def FieldToData(field): |
| 72 data = { | 73 data = { |
| 73 istr(0, 'name'): field.name, | 74 istr(0, 'name'): field.name, |
| 74 istr(1, 'kind'): KindToData(field.kind) | 75 istr(1, 'kind'): KindToData(field.kind) |
| 75 } | 76 } |
| 76 if field.ordinal != None: | 77 if field.ordinal != None: |
| 77 data[istr(2, 'ordinal')] = field.ordinal | 78 data[istr(2, 'ordinal')] = field.ordinal |
| 78 if field.default != None: | 79 if field.default != None: |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 istr(1, 'peer'): interface.peer, | 131 istr(1, 'peer'): interface.peer, |
| 131 istr(2, 'methods'): map(MethodToData, interface.methods) | 132 istr(2, 'methods'): map(MethodToData, interface.methods) |
| 132 } | 133 } |
| 133 | 134 |
| 134 def InterfaceFromData(kinds, data): | 135 def InterfaceFromData(kinds, data): |
| 135 interface = mojom.Interface() | 136 interface = mojom.Interface() |
| 136 interface.name = data['name'] | 137 interface.name = data['name'] |
| 137 interface.peer = data['peer'] | 138 interface.peer = data['peer'] |
| 138 interface.methods = map( | 139 interface.methods = map( |
| 139 lambda method: MethodFromData(kinds, method), data['methods']) | 140 lambda method: MethodFromData(kinds, method), data['methods']) |
| 141 interface.enums = map(lambda enum: EnumFromData(kinds, enum), data['enums']) |
| 140 return interface | 142 return interface |
| 141 | 143 |
| 142 def EnumFieldFromData(kinds, data): | 144 def EnumFieldFromData(kinds, data): |
| 143 field = mojom.EnumField() | 145 field = mojom.EnumField() |
| 144 field.name = data['name'] | 146 field.name = data['name'] |
| 145 field.value = data['value'] | 147 field.value = data['value'] |
| 146 return field | 148 return field |
| 147 | 149 |
| 148 def EnumFromData(kinds, data): | 150 def EnumFromData(kinds, data): |
| 149 enum = mojom.Enum() | 151 enum = mojom.Enum() |
| (...skipping 29 matching lines...) Expand all Loading... |
| 179 def OrderedModuleFromData(data): | 181 def OrderedModuleFromData(data): |
| 180 module = ModuleFromData(data) | 182 module = ModuleFromData(data) |
| 181 next_interface_ordinal = 0 | 183 next_interface_ordinal = 0 |
| 182 for interface in module.interfaces: | 184 for interface in module.interfaces: |
| 183 next_ordinal = 0 | 185 next_ordinal = 0 |
| 184 for method in interface.methods: | 186 for method in interface.methods: |
| 185 if method.ordinal is None: | 187 if method.ordinal is None: |
| 186 method.ordinal = next_ordinal | 188 method.ordinal = next_ordinal |
| 187 next_ordinal = method.ordinal + 1 | 189 next_ordinal = method.ordinal + 1 |
| 188 return module | 190 return module |
| OLD | NEW |