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

@@ -27,13 +27,9 @@ def compute_wire_params(api_params, wire_json):
commands = []
return_commands = []
object_result_member = common.RecordMember(Name('result'), types['ObjectHandle'], 'value', False, True)
string_message_member = common.RecordMember(Name('message'), types['char'], 'const*', False, False)
string_message_member.length = 'strlen'
built_object_member = common.RecordMember(Name('built object'), types['ObjectHandle'], 'value', False, False)
callback_status_member = common.RecordMember(Name('status'), types['uint32_t'], 'value', False, False)
# Generate commands from object methods
@@ -50,7 +46,9 @@ def compute_wire_params(api_params, wire_json):
# Client->Server commands that return an object return the result object handle
if method.return_type.category == 'object':
members.append(object_result_member)
result = common.RecordMember(Name('result'), types['ObjectHandle'], 'value', False, True)
result.set_handle_type(method.return_type)
members.append(result)
command_name = concat_names(api_object.name, method.name)
command = common.Command(command_name, members)
@@ -63,9 +61,10 @@ def compute_wire_params(api_params, wire_json):
# This can be removed when WebGPU error handling is implemented
if api_object.is_builder:
command_name = concat_names(api_object.name, Name('error callback'))
built_object = common.RecordMember(Name('built object'), types['ObjectHandle'], 'value', False, False)
built_object.set_handle_type(api_object.built_type)
command = common.Command(command_name, [
built_object_member,
built_object,
callback_status_member,
string_message_member,
])