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

Side by Side Diff: mojo/public/tools/bindings/generators/dart_templates/interface_definition.tmpl

Issue 800523004: Dart: Simplifies the handle watcher. Various cleanups and bugfixes. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: cleanup Created 5 years, 11 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
OLDNEW
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 abstract class {{interface.name}}Calls { 5 abstract class {{interface.name}}Calls {
6 void enqueueMessage(Type t, int name, Object msg); 6 void enqueueMessage(Type t, int name, Object msg);
7 Future enqueueMessageWithRequestID(Type t, int name, int id, Object msg); 7 Future enqueueMessageWithRequestID(Type t, int name, int id, Object msg);
8 bool get isOpen; 8 bool get isOpen;
9 9
10 {%- for method in interface.methods %} 10 {%- for method in interface.methods %}
11 {%- if method.response_parameters == None %} 11 {%- if method.response_parameters == None %}
12 void call{{method.name}}( 12 void call{{method.name}}(
13 {%- for parameter in method.parameters -%} 13 {%- for parameter in method.parameters -%}
14 {{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 %}
15 {%- endfor -%} 15 {%- endfor -%}
16 ) { 16 ) {
17 assert(isOpen); 17 assert(isOpen);
18 var params = new {{interface.name}}_{{method.name}}_Params(); 18 var params = new {{interface.name}}_{{method.name}}_Params();
19 {%- for parameter in method.parameters %} 19 {%- for parameter in method.parameters %}
20 params.{{parameter.name}} = {{parameter.name}}; 20 params.{{parameter.name}} = {{parameter.name}};
21 {%- endfor %} 21 {%- endfor %}
22 enqueueMessage({{interface.name}}_{{method.name}}_Params, 22 enqueueMessage({{interface.name}}_{{method.name}}_Params,
23 k{{interface.name}}_{{method.name}}_name, 23 k{{interface.name}}_{{method.name}}_name,
24 params); 24 params);
25 } 25 }
26 {% else %} 26 {% else %}
27 Future<{{interface.name}}_{{method.name}}_ResponseParams> call{{method.name}}( 27 Future<{{interface.name}}_{{method.name}}_ResponseParams> call{{method.name}}(
28 {%- for parameter in method.parameters -%} 28 {%- for parameter in method.parameters -%}
29 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %} 29 {{parameter.kind|dart_decl_type}} {{parameter.name}},
30 {%- endfor -%} 30 {%- endfor -%}
31 [int requestId = -1]
31 ) { 32 ) {
32 assert(isOpen); 33 assert(isOpen);
33 var params = new {{interface.name}}_{{method.name}}_Params(); 34 var params = new {{interface.name}}_{{method.name}}_Params();
34 {%- for parameter in method.parameters %} 35 {%- for parameter in method.parameters %}
35 params.{{parameter.name}} = {{parameter.name}}; 36 params.{{parameter.name}} = {{parameter.name}};
36 {%- endfor %} 37 {%- endfor %}
37 return enqueueMessageWithRequestID( 38 return enqueueMessageWithRequestID(
38 {{interface.name}}_{{method.name}}_Params, 39 {{interface.name}}_{{method.name}}_Params,
39 k{{interface.name}}_{{method.name}}_name, 40 k{{interface.name}}_{{method.name}}_name,
40 0, 41 requestId,
41 bindings.kMessageExpectsResponse, 42 bindings.kMessageExpectsResponse,
42 params); 43 params);
43 } 44 }
44 {%- endif %} 45 {%- endif %}
45 {%- endfor %} 46 {%- endfor %}
46 } 47 }
47 48
48 class {{interface.name}}Client extends bindings.Client with {{interface.name}}Ca lls { 49 class {{interface.name}}Client extends bindings.Client with {{interface.name}}Ca lls {
49 {{interface.name}}Client(core.MojoMessagePipeEndpoint endpoint) : super(endpoi nt); 50 {{interface.name}}Client(core.MojoMessagePipeEndpoint endpoint) : super(endpoi nt);
50 51
52 {{interface.name}}Client.fromHandle(int handle) : super.fromHandle(handle);
53
51 void handleResponse(bindings.MessageReader reader) { 54 void handleResponse(bindings.MessageReader reader) {
52 switch (reader.name) { 55 switch (reader.name) {
53 {%- for method in interface.methods %} 56 {%- for method in interface.methods %}
54 {%- if method.response_parameters != None %} 57 {%- if method.response_parameters != None %}
55 case k{{interface.name}}_{{method.name}}_name: 58 case k{{interface.name}}_{{method.name}}_name:
56 var r = reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP arams); 59 var r = reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP arams);
57 Completer c = completerQueue.removeAt(0); 60 Completer c = completerMap[reader.requestID];
61 completerMap[reader.requestID] = null;
58 c.complete(r); 62 c.complete(r);
59 break; 63 break;
60 {%- endif %} 64 {%- endif %}
61 {%- endfor %} 65 {%- endfor %}
62 default: 66 default:
63 throw new Exception("Unexpected message name"); 67 throw new Exception("Unexpected message name");
64 break; 68 break;
65 } 69 }
66 } 70 }
67 } 71 }
68 72
69 73
70 abstract class {{interface.name}}Interface extends bindings.Interface 74 abstract class {{interface.name}}Interface extends bindings.Interface
71 {% if interface.client != None -%} 75 {% if interface.client != None -%}
72 with {{imported_from[interface.client]}}{{interface.client}}Calls 76 with {{imported_from[interface.client]}}{{interface.client}}Calls
73 {% endif -%} { 77 {% endif -%} {
74 {{interface.name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end point); 78 {{interface.name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end point);
75 79
80 {{interface.name}}Interface.fromHandle(int handle) : super.fromHandle(handle);
81
82 static const String name = '{{namespace|replace(".","::")}}::{{interface.name} }';
83
76 {% for method in interface.methods %} 84 {% for method in interface.methods %}
77 {%- if method.response_parameters == None %} 85 {%- if method.response_parameters == None %}
78 void {{method.name|stylize_method}}( 86 void {{method.name|stylize_method}}(
79 {%- for parameter in method.parameters -%} 87 {%- for parameter in method.parameters -%}
80 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %} 88 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %}
81 {%- endfor -%} 89 {%- endfor -%}
82 ); 90 );
83 {%- else %} 91 {%- else %}
84 {{interface.name}}_{{method.name}}_ResponseParams {{method.name|stylize_method }}( 92 {{interface.name}}_{{method.name}}_ResponseParams {{method.name|stylize_method }}(
85 {%- for parameter in method.parameters -%} 93 {%- for parameter in method.parameters -%}
86 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %} 94 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %}
87 {%- endfor -%} 95 {%- endfor -%}
88 ); 96 );
89 {%- endif %} 97 {%- endif %}
90 {%- endfor %} 98 {%- endfor %}
91 99
92 bindings.Message handleMessage(bindings.MessageReader reader) { 100 Future<bindings.Message> handleMessage(bindings.MessageReader reader) {
93 switch (reader.name) { 101 switch (reader.name) {
94 {%- for method in interface.methods %} 102 {%- for method in interface.methods %}
95 case k{{interface.name}}_{{method.name}}_name: 103 case k{{interface.name}}_{{method.name}}_name:
96 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Para ms); 104 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Para ms);
97 {%- if method.response_parameters == None %} 105 {%- if method.response_parameters == None %}
98 {{method.name|stylize_method}}(params); 106 {{method.name|stylize_method}}(
99 {%- else %}
100 var response = {{method.name|stylize_method}}(
101 {%- for parameter in method.parameters -%} 107 {%- for parameter in method.parameters -%}
102 params.{{parameter.name}}{% if not loop.last %}, {% endif %} 108 params.{{parameter.name}}{% if not loop.last %}, {% endif %}
103 {%- endfor -%} 109 {%- endfor -%}
104 ); 110 );
105 return buildResponseWithID( 111 {%- else %}
106 {{interface.name}}_{{method.name}}_ResponseParams, 112 return {{method.name|stylize_method}}(
107 k{{interface.name}}_{{method.name}}_name, 113 {%- for parameter in method.parameters -%}
108 reader.requestID, 114 params.{{parameter.name}}{% if not loop.last %}, {% endif %}
109 bindings.kMessageIsResponse, 115 {%- endfor -%}
110 response); 116 ).then((response) {
117 if (response != null) {
118 return buildResponseWithID(
119 {{interface.name}}_{{method.name}}_ResponseParams,
120 k{{interface.name}}_{{method.name}}_name,
121 reader.requestID,
122 bindings.kMessageIsResponse,
123 response);
124 }
125 });
111 {%- endif %} 126 {%- endif %}
112 break; 127 break;
113 {%- endfor %} 128 {%- endfor %}
114 default: 129 default:
115 throw new Exception("Unexpected message name"); 130 throw new Exception("Unexpected message name");
116 break; 131 break;
117 } 132 }
118 return null; 133 return null;
119 } 134 }
120 } 135 }
121 136
122 137
123 {#--- TODO(zra): Validation #} 138 {#--- TODO(zra): Validation #}
124 139
125 140
126 {#--- Interface Constants #} 141 {#--- Interface Constants #}
127 {% for constant in interface.constants %} 142 {% for constant in interface.constants %}
128 final {{constant.name}} = {{constant.value|expression_to_text}}; 143 final {{constant.name}} = {{constant.value|expression_to_text}};
129 {%- endfor %} 144 {%- endfor %}
130 145
131 146
132 {#--- Interface Enums #} 147 {#--- Interface Enums #}
133 {%- from "enum_definition.tmpl" import enum_def -%} 148 {%- from "enum_definition.tmpl" import enum_def -%}
134 {%- for enum in interface.enums %} 149 {%- for enum in interface.enums %}
135 {{ enum_def("", enum) }} 150 {{ enum_def("", enum) }}
136 {%- endfor %} 151 {%- endfor %}
OLDNEW
« no previous file with comments | « mojo/public/dart/src/types.dart ('k') | mojo/public/tools/bindings/generators/dart_templates/struct_definition.tmpl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698