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

Side by Side Diff: mojo/public/tools/bindings/pylib/mojom/generate/module.py

Issue 1701423002: Mojo C++ bindings: support sync methods - part 1. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 | « mojo/public/tools/bindings/pylib/mojom/generate/data.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 NULLABLE_HANDLE, 128 NULLABLE_HANDLE,
129 NULLABLE_DCPIPE, 129 NULLABLE_DCPIPE,
130 NULLABLE_DPPIPE, 130 NULLABLE_DPPIPE,
131 NULLABLE_MSGPIPE, 131 NULLABLE_MSGPIPE,
132 NULLABLE_SHAREDBUFFER 132 NULLABLE_SHAREDBUFFER
133 ) 133 )
134 134
135 135
136 ATTRIBUTE_MIN_VERSION = 'MinVersion' 136 ATTRIBUTE_MIN_VERSION = 'MinVersion'
137 ATTRIBUTE_EXTENSIBLE = 'Extensible' 137 ATTRIBUTE_EXTENSIBLE = 'Extensible'
138 ATTRIBUTE_SYNC = 'Sync'
138 139
139 140
140 class NamedValue(object): 141 class NamedValue(object):
141 def __init__(self, module, parent_kind, name): 142 def __init__(self, module, parent_kind, name):
142 self.module = module 143 self.module = module
143 self.namespace = module.namespace 144 self.namespace = module.namespace
144 self.parent_kind = parent_kind 145 self.parent_kind = parent_kind
145 self.name = name 146 self.name = name
146 self.imported_from = None 147 self.imported_from = None
147 148
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 self.response_parameters = [] 370 self.response_parameters = []
370 parameter = Parameter(name, kind, ordinal, default, attributes) 371 parameter = Parameter(name, kind, ordinal, default, attributes)
371 self.response_parameters.append(parameter) 372 self.response_parameters.append(parameter)
372 return parameter 373 return parameter
373 374
374 @property 375 @property
375 def min_version(self): 376 def min_version(self):
376 return self.attributes.get(ATTRIBUTE_MIN_VERSION) \ 377 return self.attributes.get(ATTRIBUTE_MIN_VERSION) \
377 if self.attributes else None 378 if self.attributes else None
378 379
380 @property
381 def sync(self):
382 return self.attributes.get(ATTRIBUTE_SYNC) \
383 if self.attributes else None
384
379 385
380 class Interface(ReferenceKind): 386 class Interface(ReferenceKind):
381 ReferenceKind.AddSharedProperty('module') 387 ReferenceKind.AddSharedProperty('module')
382 ReferenceKind.AddSharedProperty('name') 388 ReferenceKind.AddSharedProperty('name')
383 ReferenceKind.AddSharedProperty('imported_from') 389 ReferenceKind.AddSharedProperty('imported_from')
384 ReferenceKind.AddSharedProperty('methods') 390 ReferenceKind.AddSharedProperty('methods')
385 ReferenceKind.AddSharedProperty('attributes') 391 ReferenceKind.AddSharedProperty('attributes')
386 392
387 def __init__(self, name=None, module=None, attributes=None): 393 def __init__(self, name=None, module=None, attributes=None):
388 if name is not None: 394 if name is not None:
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 visited_kinds = set() 664 visited_kinds = set()
659 for method in interface.methods: 665 for method in interface.methods:
660 for param in method.parameters: 666 for param in method.parameters:
661 if _ContainsAssociatedKinds(param.kind, visited_kinds): 667 if _ContainsAssociatedKinds(param.kind, visited_kinds):
662 return True 668 return True
663 if method.response_parameters != None: 669 if method.response_parameters != None:
664 for param in method.response_parameters: 670 for param in method.response_parameters:
665 if _ContainsAssociatedKinds(param.kind, visited_kinds): 671 if _ContainsAssociatedKinds(param.kind, visited_kinds):
666 return True 672 return True
667 return False 673 return False
OLDNEW
« no previous file with comments | « mojo/public/tools/bindings/pylib/mojom/generate/data.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698