| 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 # This module's classes provide an interface to mojo modules. Modules are | 5 # This module's classes provide an interface to mojo modules. Modules are |
| 6 # collections of interfaces and structs to be used by mojo ipc clients and | 6 # collections of interfaces and structs to be used by mojo ipc clients and |
| 7 # servers. | 7 # servers. |
| 8 # | 8 # |
| 9 # A simple interface would be created this way: | 9 # A simple interface would be created this way: |
| 10 # module = mojom.generate.module.Module('Foo') | 10 # module = mojom.generate.module.Module('Foo') |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 self.module = module | 197 self.module = module |
| 198 self.imported_from = None | 198 self.imported_from = None |
| 199 self.fields = [] | 199 self.fields = [] |
| 200 | 200 |
| 201 def AddField(self, name, kind, ordinal=None, default=None): | 201 def AddField(self, name, kind, ordinal=None, default=None): |
| 202 field = Field(name, kind, ordinal, default) | 202 field = Field(name, kind, ordinal, default) |
| 203 self.fields.append(field) | 203 self.fields.append(field) |
| 204 return field | 204 return field |
| 205 | 205 |
| 206 | 206 |
| 207 class Union(ReferenceKind): |
| 208 ReferenceKind.AddSharedProperty('name') |
| 209 ReferenceKind.AddSharedProperty('module') |
| 210 ReferenceKind.AddSharedProperty('imported_from') |
| 211 ReferenceKind.AddSharedProperty('fields') |
| 212 |
| 213 def __init__(self, name=None, module=None): |
| 214 if name is not None: |
| 215 spec = 'x:' + name |
| 216 else: |
| 217 spec = None |
| 218 ReferenceKind.__init__(self, spec) |
| 219 self.name = name |
| 220 self.module = module |
| 221 self.imported_from = None |
| 222 self.fields = [] |
| 223 |
| 224 def AddField(self, name, kind, ordinal=None): |
| 225 field = Field(name, kind, ordinal, default=None) |
| 226 self.fields.append(field) |
| 227 return field |
| 228 |
| 229 |
| 207 class Array(ReferenceKind): | 230 class Array(ReferenceKind): |
| 208 ReferenceKind.AddSharedProperty('kind') | 231 ReferenceKind.AddSharedProperty('kind') |
| 209 ReferenceKind.AddSharedProperty('length') | 232 ReferenceKind.AddSharedProperty('length') |
| 210 | 233 |
| 211 def __init__(self, kind=None, length=None): | 234 def __init__(self, kind=None, length=None): |
| 212 if kind is not None: | 235 if kind is not None: |
| 213 if length is not None: | 236 if length is not None: |
| 214 spec = 'a%d:%s' % (length, kind.spec) | 237 spec = 'a%d:%s' % (length, kind.spec) |
| 215 else: | 238 else: |
| 216 spec = 'a:%s' % kind.spec | 239 spec = 'a:%s' % kind.spec |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 Kind.__init__(self, spec) | 355 Kind.__init__(self, spec) |
| 333 self.fields = [] | 356 self.fields = [] |
| 334 | 357 |
| 335 | 358 |
| 336 class Module(object): | 359 class Module(object): |
| 337 def __init__(self, name=None, namespace=None): | 360 def __init__(self, name=None, namespace=None): |
| 338 self.name = name | 361 self.name = name |
| 339 self.path = name | 362 self.path = name |
| 340 self.namespace = namespace | 363 self.namespace = namespace |
| 341 self.structs = [] | 364 self.structs = [] |
| 365 self.unions = [] |
| 342 self.interfaces = [] | 366 self.interfaces = [] |
| 367 self.kinds = {} |
| 343 | 368 |
| 344 def AddInterface(self, name): | 369 def AddInterface(self, name): |
| 345 interface = Interface(name, module=self) | 370 interface = Interface(name, module=self) |
| 346 self.interfaces.append(interface) | 371 self.interfaces.append(interface) |
| 347 return interface | 372 return interface |
| 348 | 373 |
| 349 def AddStruct(self, name): | 374 def AddStruct(self, name): |
| 350 struct=Struct(name, module=self) | 375 struct = Struct(name, module=self) |
| 351 self.structs.append(struct) | 376 self.structs.append(struct) |
| 352 return struct | 377 return struct |
| 353 | 378 |
| 379 def AddUnion(self, name): |
| 380 union = Union(name, module=self) |
| 381 self.unions.append(union) |
| 382 return union |
| 383 |
| 354 | 384 |
| 355 def IsBoolKind(kind): | 385 def IsBoolKind(kind): |
| 356 return kind.spec == BOOL.spec | 386 return kind.spec == BOOL.spec |
| 357 | 387 |
| 358 | 388 |
| 359 def IsFloatKind(kind): | 389 def IsFloatKind(kind): |
| 360 return kind.spec == FLOAT.spec | 390 return kind.spec == FLOAT.spec |
| 361 | 391 |
| 362 | 392 |
| 363 def IsStringKind(kind): | 393 def IsStringKind(kind): |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 458 | 488 |
| 459 return not ContainsHandles(kind, set()) | 489 return not ContainsHandles(kind, set()) |
| 460 | 490 |
| 461 | 491 |
| 462 def HasCallbacks(interface): | 492 def HasCallbacks(interface): |
| 463 for method in interface.methods: | 493 for method in interface.methods: |
| 464 if method.response_parameters != None: | 494 if method.response_parameters != None: |
| 465 return True | 495 return True |
| 466 return False | 496 return False |
| 467 | 497 |
| OLD | NEW |