| OLD | NEW |
| 1 {%- for method in interface.methods %} | 1 {%- for method in interface.methods %} |
| 2 const int k{{interface.name}}_{{method.name}}_name = {{method.ordinal}}; | 2 const int k{{interface.name}}_{{method.name}}_name = {{method.ordinal}}; |
| 3 {%- endfor %} | 3 {%- endfor %} |
| 4 | 4 |
| 5 | 5 abstract class {{interface.name}}Calls { |
| 6 class {{interface.name}}Client extends bindings.Client { | 6 void enqueueMessage(Type t, int name, Object msg); |
| 7 {{interface.name}}Client(core.MojoMessagePipeEndpoint endpoint) : super(endpoi
nt); | 7 Future enqueueMessageWithRequestID(Type t, int name, int id, Object msg); |
| 8 bool get isOpen; |
| 8 | 9 |
| 9 {%- for method in interface.methods %} | 10 {%- for method in interface.methods %} |
| 10 {%- if method.response_parameters == None %} | 11 {%- if method.response_parameters == None %} |
| 11 void {{method.name|stylize_method}}( | 12 void call{{method.name}}( |
| 12 {%- for parameter in method.parameters -%} | 13 {%- for parameter in method.parameters -%} |
| 13 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} | 14 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} |
| 14 {%- endfor -%} | 15 {%- endfor -%} |
| 15 ) { | 16 ) { |
| 16 assert(isOpen); | 17 assert(isOpen); |
| 17 var params = new {{interface.name}}_{{method.name}}_Params(); | 18 var params = new {{interface.name}}_{{method.name}}_Params(); |
| 18 {%- for parameter in method.parameters %} | 19 {%- for parameter in method.parameters %} |
| 19 params.{{parameter.name}} = {{parameter.name}}; | 20 params.{{parameter.name}} = {{parameter.name}}; |
| 20 {%- endfor %} | 21 {%- endfor %} |
| 21 enqueueMessage({{interface.name}}_{{method.name}}_Params, | 22 enqueueMessage({{interface.name}}_{{method.name}}_Params, |
| 22 k{{interface.name}}_{{method.name}}_name, | 23 k{{interface.name}}_{{method.name}}_name, |
| 23 params); | 24 params); |
| 24 } | 25 } |
| 25 {% else %} | 26 {% else %} |
| 26 Future<{{interface.name}}_{{method.name}}_ResponseParams> {{method.name|styliz
e_method}}( | 27 Future<{{interface.name}}_{{method.name}}_ResponseParams> call{{method.name}}( |
| 27 {%- for parameter in method.parameters -%} | 28 {%- for parameter in method.parameters -%} |
| 28 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} | 29 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} |
| 29 {%- endfor -%} | 30 {%- endfor -%} |
| 30 ) { | 31 ) { |
| 31 assert(isOpen); | 32 assert(isOpen); |
| 32 var params = new {{interface.name}}_{{method.name}}_Params(); | 33 var params = new {{interface.name}}_{{method.name}}_Params(); |
| 33 {%- for parameter in method.parameters %} | 34 {%- for parameter in method.parameters %} |
| 34 params.{{parameter.name}} = {{parameter.name}}; | 35 params.{{parameter.name}} = {{parameter.name}}; |
| 35 {%- endfor %} | 36 {%- endfor %} |
| 36 return enqueueMessageWithRequestID( | 37 return enqueueMessageWithRequestID( |
| 37 {{interface.name}}_{{method.name}}_Params, | 38 {{interface.name}}_{{method.name}}_Params, |
| 38 k{{interface.name}}_{{method.name}}_name, | 39 k{{interface.name}}_{{method.name}}_name, |
| 40 0, |
| 39 bindings.kMessageExpectsResponse, | 41 bindings.kMessageExpectsResponse, |
| 40 params); | 42 params); |
| 41 } | 43 } |
| 42 {%- endif %} | 44 {%- endif %} |
| 43 {%- endfor %} | 45 {%- endfor %} |
| 46 } |
| 47 |
| 48 class {{interface.name}}Client extends bindings.Client with {{interface.name}}Ca
lls { |
| 49 {{interface.name}}Client(core.MojoMessagePipeEndpoint endpoint) : super(endpoi
nt); |
| 44 | 50 |
| 45 void handleResponse(bindings.MessageReader reader) { | 51 void handleResponse(bindings.MessageReader reader) { |
| 46 switch (reader.name) { | 52 switch (reader.name) { |
| 47 {%- for method in interface.methods %} | 53 {%- for method in interface.methods %} |
| 48 {%- if method.response_parameters != None %} | 54 {%- if method.response_parameters != None %} |
| 49 case k{{interface.name}}_{{method.name}}_name: | 55 case k{{interface.name}}_{{method.name}}_name: |
| 50 var r = reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP
arams); | 56 var r = reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP
arams); |
| 51 Completer c = completerQueue.removeAt(0); | 57 Completer c = completerQueue.removeAt(0); |
| 52 c.complete(r); | 58 c.complete(r); |
| 53 break; | 59 break; |
| 54 {%- endif %} | 60 {%- endif %} |
| 55 {%- endfor %} | 61 {%- endfor %} |
| 56 default: | 62 default: |
| 57 throw new Exception("Unexpected message name"); | 63 throw new Exception("Unexpected message name"); |
| 58 break; | 64 break; |
| 59 } | 65 } |
| 60 } | 66 } |
| 61 } | 67 } |
| 62 | 68 |
| 63 | 69 |
| 64 class {{interface.name}}Interface extends bindings.Interface { | 70 abstract class {{interface.name}}Interface extends bindings.Interface |
| 71 {% if interface.client != None -%} |
| 72 with {{imported_from[interface.client]}}{{interface.client}}Calls |
| 73 {% endif -%} { |
| 65 {{interface.name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end
point); | 74 {{interface.name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end
point); |
| 66 | 75 |
| 67 bindings.Message handleMessage(bindings.MessageReader reader, | 76 {% for method in interface.methods %} |
| 68 Function messageHandler) { | 77 {%- if method.response_parameters == None %} |
| 78 void {{method.name|stylize_method}}( |
| 79 {%- for parameter in method.parameters -%} |
| 80 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} |
| 81 {%- endfor -%} |
| 82 ); |
| 83 {%- else %} |
| 84 {{interface.name}}_{{method.name}}_ResponseParams {{method.name|stylize_method
}}( |
| 85 {%- for parameter in method.parameters -%} |
| 86 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %},
{% endif %} |
| 87 {%- endfor -%} |
| 88 ); |
| 89 {%- endif %} |
| 90 {%- endfor %} |
| 91 |
| 92 bindings.Message handleMessage(bindings.MessageReader reader) { |
| 69 switch (reader.name) { | 93 switch (reader.name) { |
| 70 {%- for method in interface.methods %} | 94 {%- for method in interface.methods %} |
| 71 case k{{interface.name}}_{{method.name}}_name: | 95 case k{{interface.name}}_{{method.name}}_name: |
| 72 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Para
ms); | 96 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Para
ms); |
| 73 {%- if method.response_parameters == None %} | 97 {%- if method.response_parameters == None %} |
| 74 messageHandler(params); | 98 {{method.name|stylize_method}}(params); |
| 75 {%- else %} | 99 {%- else %} |
| 76 var response = messageHandler(params); | 100 var response = {{method.name|stylize_method}}( |
| 101 {%- for parameter in method.parameters -%} |
| 102 params.{{parameter.name}}{% if not loop.last %}, {% endif %} |
| 103 {%- endfor -%} |
| 104 ); |
| 77 return buildResponseWithID( | 105 return buildResponseWithID( |
| 78 {{interface.name}}_{{method.name}}_ResponseParams, | 106 {{interface.name}}_{{method.name}}_ResponseParams, |
| 79 k{{interface.name}}_{{method.name}}_name, | 107 k{{interface.name}}_{{method.name}}_name, |
| 108 reader.requestID, |
| 80 bindings.kMessageIsResponse, | 109 bindings.kMessageIsResponse, |
| 81 response); | 110 response); |
| 82 {%- endif %} | 111 {%- endif %} |
| 83 break; | 112 break; |
| 84 {%- endfor %} | 113 {%- endfor %} |
| 85 default: | 114 default: |
| 86 throw new Exception("Unexpected message name"); | 115 throw new Exception("Unexpected message name"); |
| 87 break; | 116 break; |
| 88 } | 117 } |
| 89 return null; | 118 return null; |
| 90 } | 119 } |
| 91 } | 120 } |
| 92 | 121 |
| 93 | 122 |
| 94 {#--- TODO(zra): Validation #} | 123 {#--- TODO(zra): Validation #} |
| 95 | 124 |
| 96 | 125 |
| 97 {#--- Interface Constants #} | 126 {#--- Interface Constants #} |
| 98 {% for constant in interface.constants %} | 127 {% for constant in interface.constants %} |
| 99 final {{constant.name}} = {{constant.value|expression_to_text}}; | 128 final {{constant.name}} = {{constant.value|expression_to_text}}; |
| 100 {%- endfor %} | 129 {%- endfor %} |
| 101 | 130 |
| 102 | 131 |
| 103 {#--- Interface Enums #} | 132 {#--- Interface Enums #} |
| 104 {%- from "enum_definition.tmpl" import enum_def -%} | 133 {%- from "enum_definition.tmpl" import enum_def -%} |
| 105 {%- for enum in interface.enums %} | 134 {%- for enum in interface.enums %} |
| 106 {{ enum_def("", enum) }} | 135 {{ enum_def("", enum) }} |
| 107 {%- endfor %} | 136 {%- endfor %} |
| OLD | NEW |