OLD | NEW |
(Empty) | |
| 1 {%- for method in interface.methods %} |
| 2 const int k{{interface.name}}_{{method.name}}_name = {{method.ordinal}}; |
| 3 {%- endfor %} |
| 4 |
| 5 |
| 6 abstract class {{interface.name}}Calls { |
| 7 List get send_queue; |
| 8 core.MojoHandle get handle; |
| 9 |
| 10 Future enqueueMessage(Type t, int name, Object msg); |
| 11 |
| 12 {%- for method in interface.methods %} |
| 13 Future {{method.name|stylize_method}}( |
| 14 {%- for parameter in method.parameters -%} |
| 15 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} |
| 16 {%- endfor -%} |
| 17 ) { |
| 18 var params = new {{interface.name}}_{{method.name}}_Params(); |
| 19 {%- for parameter in method.parameters %} |
| 20 params.{{parameter.name}} = {{parameter.name}}; |
| 21 {%- endfor %} |
| 22 return enqueueMessage({{interface.name}}_{{method.name}}_Params, |
| 23 k{{interface.name}}_{{method.name}}_name, |
| 24 params); |
| 25 } |
| 26 {%- endfor %} |
| 27 } |
| 28 |
| 29 |
| 30 class {{interface.name}}Client extends bindings.Client with {{interface.name}}Ca
lls { |
| 31 {{interface.name}}Client(core.MojoMessagePipeEndpoint endpoint) : super(endpoi
nt); |
| 32 |
| 33 void handleResponse(bindings.MessageReader reader) { |
| 34 switch (reader.name) { |
| 35 {%- for method in interface.methods %} |
| 36 case k{{interface.name}}_{{method.name}}_name: |
| 37 {%- if method.response_parameters != None %} |
| 38 var r = reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP
arams); |
| 39 Completer c = completer_queue.removeAt(0); |
| 40 c.complete(r); |
| 41 break; |
| 42 {%- endif %} |
| 43 {%- endfor %} |
| 44 default: |
| 45 throw new Exception("Unexpected message name"); |
| 46 break; |
| 47 } |
| 48 } |
| 49 } |
| 50 |
| 51 |
| 52 abstract class {{interface.name}}Interface extends bindings.Interface { |
| 53 {{interface.name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end
point); |
| 54 |
| 55 {% for method in interface.methods %} |
| 56 {%- if method.response_parameters == None %} |
| 57 void {{method.name|stylize_method}}({{interface.name}}_{{method.name}}_Params
params); |
| 58 {%- else %} |
| 59 Future<{{interface.name}}_{{method.name}}_ResponseParams> {{method.name|styliz
e_method}}({{interface.name}}_{{method.name}}_Params); |
| 60 {%- endif %} |
| 61 {%- endfor %} |
| 62 |
| 63 Future<bindings.Message> handleMessage(bindings.MessageReader reader) { |
| 64 var result = null; |
| 65 switch (reader.name) { |
| 66 {%- for method in interface.methods %} |
| 67 case k{{interface.name}}_{{method.name}}_name: |
| 68 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Para
ms); |
| 69 {%- if method.response_parameters == None %} |
| 70 {{method.name|stylize_method}}(params); |
| 71 {%- else %} |
| 72 var response_message = new Completer(); |
| 73 {{method.name|stylize_method}}(params).then((response) { |
| 74 buildResponse(response_message, |
| 75 {{interface.name}}_{{method.name}}_ResponseParams, |
| 76 k{{interface.name}}_{{method.name}}_name, |
| 77 response); |
| 78 }); |
| 79 result = response_message.future; |
| 80 {%- endif %} |
| 81 break; |
| 82 {%- endfor %} |
| 83 default: |
| 84 throw new Exception("Unexpected message name"); |
| 85 break; |
| 86 } |
| 87 return result; |
| 88 } |
| 89 } |
| 90 |
| 91 |
| 92 {#--- TODO(zra): Validation #} |
| 93 |
| 94 |
| 95 {#--- Interface Constants #} |
| 96 {%- for constant in interface.constants %} |
| 97 final {{constant.name}} = {{constant.value|expression_to_text}}, |
| 98 {%- endfor %} |
| 99 |
| 100 |
| 101 {#--- Interface Enums #} |
| 102 {%- from "enum_definition.tmpl" import enum_def -%} |
| 103 {%- for enum in interface.enums %} |
| 104 {{ enum_def("", enum) }} |
| 105 {%- endfor %} |
OLD | NEW |