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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 SHAREDBUFFER, | 123 SHAREDBUFFER, |
124 NULLABLE_STRING, | 124 NULLABLE_STRING, |
125 NULLABLE_HANDLE, | 125 NULLABLE_HANDLE, |
126 NULLABLE_DCPIPE, | 126 NULLABLE_DCPIPE, |
127 NULLABLE_DPPIPE, | 127 NULLABLE_DPPIPE, |
128 NULLABLE_MSGPIPE, | 128 NULLABLE_MSGPIPE, |
129 NULLABLE_SHAREDBUFFER | 129 NULLABLE_SHAREDBUFFER |
130 ) | 130 ) |
131 | 131 |
132 | 132 |
133 ATTRIBUTE_MIN_VERSION = 'MinVersion' | |
134 | |
135 | |
136 class NamedValue(object): | 133 class NamedValue(object): |
137 def __init__(self, module=None, parent_kind=None, name=None): | 134 def __init__(self, module=None, parent_kind=None, name=None): |
138 self.module = module | 135 self.module = module |
139 if module: | 136 if module: |
140 self.namespace = module.namespace | 137 self.namespace = module.namespace |
141 self.parent_kind = parent_kind | 138 self.parent_kind = parent_kind |
142 self.name = name | 139 self.name = name |
143 self.imported_from = None | 140 self.imported_from = None |
144 | 141 |
145 def GetSpec(self): | 142 def GetSpec(self): |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 def __init__(self, name=None, kind=None, ordinal=None, default=None, | 185 def __init__(self, name=None, kind=None, ordinal=None, default=None, |
189 attributes=None): | 186 attributes=None): |
190 if self.__class__.__name__ == 'Field': | 187 if self.__class__.__name__ == 'Field': |
191 raise Exception() | 188 raise Exception() |
192 self.name = name | 189 self.name = name |
193 self.kind = kind | 190 self.kind = kind |
194 self.ordinal = ordinal | 191 self.ordinal = ordinal |
195 self.default = default | 192 self.default = default |
196 self.attributes = attributes | 193 self.attributes = attributes |
197 | 194 |
198 @property | |
199 def min_version(self): | |
200 return self.attributes.get(ATTRIBUTE_MIN_VERSION) \ | |
201 if self.attributes else None | |
202 | |
203 | 195 |
204 class StructField(Field): pass | 196 class StructField(Field): pass |
205 | 197 |
206 | 198 |
207 class UnionField(Field): pass | 199 class UnionField(Field): pass |
208 | 200 |
209 | 201 |
210 class Struct(ReferenceKind): | 202 class Struct(ReferenceKind): |
211 ReferenceKind.AddSharedProperty('name') | 203 ReferenceKind.AddSharedProperty('name') |
212 ReferenceKind.AddSharedProperty('module') | 204 ReferenceKind.AddSharedProperty('module') |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 | 318 |
327 class Parameter(object): | 319 class Parameter(object): |
328 def __init__(self, name=None, kind=None, ordinal=None, default=None, | 320 def __init__(self, name=None, kind=None, ordinal=None, default=None, |
329 attributes=None): | 321 attributes=None): |
330 self.name = name | 322 self.name = name |
331 self.ordinal = ordinal | 323 self.ordinal = ordinal |
332 self.kind = kind | 324 self.kind = kind |
333 self.default = default | 325 self.default = default |
334 self.attributes = attributes | 326 self.attributes = attributes |
335 | 327 |
336 @property | |
337 def min_version(self): | |
338 return self.attributes.get(ATTRIBUTE_MIN_VERSION) \ | |
339 if self.attributes else None | |
340 | |
341 | 328 |
342 class Method(object): | 329 class Method(object): |
343 def __init__(self, interface, name, ordinal=None, attributes=None): | 330 def __init__(self, interface, name, ordinal=None, attributes=None): |
344 self.interface = interface | 331 self.interface = interface |
345 self.name = name | 332 self.name = name |
346 self.ordinal = ordinal | 333 self.ordinal = ordinal |
347 self.parameters = [] | 334 self.parameters = [] |
348 self.response_parameters = None | 335 self.response_parameters = None |
349 self.attributes = attributes | 336 self.attributes = attributes |
350 | 337 |
351 def AddParameter(self, name, kind, ordinal=None, default=None, | 338 def AddParameter(self, name, kind, ordinal=None, default=None, |
352 attributes=None): | 339 attributes=None): |
353 parameter = Parameter(name, kind, ordinal, default, attributes) | 340 parameter = Parameter(name, kind, ordinal, default, attributes) |
354 self.parameters.append(parameter) | 341 self.parameters.append(parameter) |
355 return parameter | 342 return parameter |
356 | 343 |
357 def AddResponseParameter(self, name, kind, ordinal=None, default=None, | 344 def AddResponseParameter(self, name, kind, ordinal=None, default=None, |
358 attributes=None): | 345 attributes=None): |
359 if self.response_parameters == None: | 346 if self.response_parameters == None: |
360 self.response_parameters = [] | 347 self.response_parameters = [] |
361 parameter = Parameter(name, kind, ordinal, default, attributes) | 348 parameter = Parameter(name, kind, ordinal, default, attributes) |
362 self.response_parameters.append(parameter) | 349 self.response_parameters.append(parameter) |
363 return parameter | 350 return parameter |
364 | 351 |
365 @property | |
366 def min_version(self): | |
367 return self.attributes.get(ATTRIBUTE_MIN_VERSION) \ | |
368 if self.attributes else None | |
369 | |
370 | 352 |
371 class Interface(ReferenceKind): | 353 class Interface(ReferenceKind): |
372 ReferenceKind.AddSharedProperty('module') | 354 ReferenceKind.AddSharedProperty('module') |
373 ReferenceKind.AddSharedProperty('name') | 355 ReferenceKind.AddSharedProperty('name') |
374 ReferenceKind.AddSharedProperty('imported_from') | 356 ReferenceKind.AddSharedProperty('imported_from') |
375 ReferenceKind.AddSharedProperty('methods') | 357 ReferenceKind.AddSharedProperty('methods') |
376 ReferenceKind.AddSharedProperty('attributes') | 358 ReferenceKind.AddSharedProperty('attributes') |
377 ReferenceKind.AddSharedProperty('constants') | 359 ReferenceKind.AddSharedProperty('constants') |
378 ReferenceKind.AddSharedProperty('enums') | 360 ReferenceKind.AddSharedProperty('enums') |
379 ReferenceKind.AddSharedProperty('type_key') | 361 ReferenceKind.AddSharedProperty('type_key') |
(...skipping 24 matching lines...) Expand all Loading... |
404 | 386 |
405 | 387 |
406 class EnumField(object): | 388 class EnumField(object): |
407 def __init__(self, name=None, value=None, attributes=None, | 389 def __init__(self, name=None, value=None, attributes=None, |
408 numeric_value=None): | 390 numeric_value=None): |
409 self.name = name | 391 self.name = name |
410 self.value = value | 392 self.value = value |
411 self.attributes = attributes | 393 self.attributes = attributes |
412 self.numeric_value = numeric_value | 394 self.numeric_value = numeric_value |
413 | 395 |
414 @property | |
415 def min_version(self): | |
416 return self.attributes.get(ATTRIBUTE_MIN_VERSION) \ | |
417 if self.attributes else None | |
418 | |
419 | 396 |
420 class Enum(Kind): | 397 class Enum(Kind): |
421 def __init__(self, name=None, module=None, attributes=None): | 398 def __init__(self, name=None, module=None, attributes=None): |
422 self.module = module | 399 self.module = module |
423 self.name = name | 400 self.name = name |
424 self.imported_from = None | 401 self.imported_from = None |
425 if name is not None: | 402 if name is not None: |
426 spec = 'x:' + name | 403 spec = 'x:' + name |
427 else: | 404 else: |
428 spec = None | 405 spec = None |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 | 581 |
605 def IsCloneableKind(kind): | 582 def IsCloneableKind(kind): |
606 return not ContainsHandles(kind, set()) | 583 return not ContainsHandles(kind, set()) |
607 | 584 |
608 | 585 |
609 def HasCallbacks(interface): | 586 def HasCallbacks(interface): |
610 for method in interface.methods: | 587 for method in interface.methods: |
611 if method.response_parameters != None: | 588 if method.response_parameters != None: |
612 return True | 589 return True |
613 return False | 590 return False |
OLD | NEW |