Factor wire client handlers into proper command handlers and doers

Bug: dawn:88
Change-Id: I3ab28efad7edc7d06f11aa5abae07a1bb3d7e59e
Reviewed-on: https://dawn-review.googlesource.com/c/4003
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Austin Eng
2019-01-30 03:00:17 +00:00
committed by Commit Bot service account
parent cd4fd8e7cd
commit 1139d1c12c
12 changed files with 171 additions and 123 deletions

View File

@@ -84,6 +84,11 @@ class RecordMember:
self.length = None
self.optional = optional
self.is_return_value = is_return_value
self.handle_type = None
def set_handle_type(self, handle_type):
assert self.type.dict_name == "ObjectHandle"
self.handle_type = handle_type
Method = namedtuple('Method', ['name', 'return_type', 'arguments'])
class ObjectType(Type):
@@ -130,6 +135,9 @@ def linked_record_members(json_data, types):
member = RecordMember(Name(m['name']), types[m['type']],
m.get('annotation', 'value'), m.get('optional', False),
m.get('is_return_value', False))
handle_type = m.get('handle_type')
if handle_type:
member.set_handle_type(types[handle_type])
members.append(member)
members_by_name[member.name.canonical_case()] = member