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

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

Issue 830593003: Update mojo sdk to rev 9fbbc4f0fef1187312316c0ed992342474e139f1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cherry-pick mojo 9d3b8dd17f12d20035a14737fdc38dd926890ff8 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(bindings.Struct message, int name);
7 Future enqueueMessageWithRequestID(Type t, int name, int id, Object msg); 7 Future enqueueMessageWithRequestId(bindings.Struct message, int name, int id);
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|upper_camel_case}}(
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_type}} {{parameter|name}}{% if not loop.last %}, {% en dif %}
15 {%- endfor -%} 15 {%- endfor -%}
16 {%- set request_struct = method|struct_from_method %}
16 ) { 17 ) {
17 assert(isOpen); 18 assert(isOpen);
18 var params = new {{interface.name}}_{{method.name}}_Params(); 19 var params = new {{request_struct|name}}();
19 {%- for parameter in method.parameters %} 20 {%- for parameter in method.parameters %}
20 params.{{parameter.name}} = {{parameter.name}}; 21 params.{{parameter|name}} = {{parameter|name}};
21 {%- endfor %} 22 {%- endfor %}
22 enqueueMessage({{interface.name}}_{{method.name}}_Params, 23 enqueueMessage(params, k{{interface|name}}_{{method|name}}_name);
23 k{{interface.name}}_{{method.name}}_name,
24 params);
25 } 24 }
26 {% else %} 25 {% else %}
27 Future<{{interface.name}}_{{method.name}}_ResponseParams> call{{method.name}}( 26 {%- set response_struct = method|response_struct_from_method %}
27 Future<{{response_struct|name}}> call{{method|name|upper_camel_case}}(
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_type}} {{parameter|name}},
30 {%- endfor -%} 30 {%- endfor -%}
31 {%- set request_struct = method|struct_from_method %}
32 [int requestId = -1]
31 ) { 33 ) {
32 assert(isOpen); 34 assert(isOpen);
33 var params = new {{interface.name}}_{{method.name}}_Params(); 35 var params = new {{request_struct|name}}();
34 {%- for parameter in method.parameters %} 36 {%- for parameter in method.parameters %}
35 params.{{parameter.name}} = {{parameter.name}}; 37 params.{{parameter|name}} = {{parameter|name}};
36 {%- endfor %} 38 {%- endfor %}
37 return enqueueMessageWithRequestID( 39 return enqueueMessageWithRequestId(
38 {{interface.name}}_{{method.name}}_Params, 40 params,
39 k{{interface.name}}_{{method.name}}_name, 41 k{{interface|name}}_{{method|name}}_name,
40 0, 42 requestId,
41 bindings.kMessageExpectsResponse, 43 bindings.MessageHeader.kMessageExpectsResponse);
42 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
51 void handleResponse(bindings.MessageReader reader) { 52 {{interface|name}}Client.fromHandle(int handle) : super.fromHandle(handle);
52 switch (reader.name) { 53
54 void handleResponse(bindings.ServiceMessage message) {
55 switch (message.header.type) {
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 {%- set response_struct = method|response_struct_from_method %}
56 var r = reader.decodeStruct({{interface.name}}_{{method.name}}_ResponseP arams); 59 case k{{interface|name}}_{{method|name}}_name:
57 Completer c = completerQueue.removeAt(0); 60 var r = {{response_struct|name}}.deserialize(
61 message.payload);
62 if (!message.header.hasRequestId) {
63 throw 'Expected a message with a valid request Id.';
64 }
65 Completer c = completerMap[message.header.requestId];
66 completerMap[message.header.requestId] = null;
58 c.complete(r); 67 c.complete(r);
59 break; 68 break;
60 {%- endif %} 69 {%- endif %}
61 {%- endfor %} 70 {%- endfor %}
62 default: 71 default:
63 throw new Exception("Unexpected message name"); 72 throw new Exception("Unexpected message name");
64 break; 73 break;
65 } 74 }
66 } 75 }
67 } 76 }
68 77
69 78
70 abstract class {{interface.name}}Interface extends bindings.Interface 79 abstract class {{interface|name}}Interface extends bindings.Interface
71 {% if interface.client != None -%} 80 {% if interface.client != None -%}
72 with {{imported_from[interface.client]}}{{interface.client}}Calls 81 with {{imported_from[interface.client]}}{{interface.client|upper_camel_case}}Cal ls
73 {% endif -%} { 82 {% endif -%} {
74 {{interface.name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end point); 83 {{interface|name}}Interface(core.MojoMessagePipeEndpoint endpoint) : super(end point);
84
85 {{interface|name}}Interface.fromHandle(int handle) : super.fromHandle(handle);
86
87 static const String name = '{{namespace|replace(".","::")}}::{{interface|name} }';
75 88
76 {% for method in interface.methods %} 89 {% for method in interface.methods %}
77 {%- if method.response_parameters == None %} 90 {%- if method.response_parameters == None %}
78 void {{method.name|stylize_method}}( 91 void {{method|name}}(
79 {%- for parameter in method.parameters -%} 92 {%- for parameter in method.parameters -%}
80 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %} 93 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en dif %}
81 {%- endfor -%} 94 {%- endfor -%}
82 ); 95 );
83 {%- else %} 96 {%- else %}
84 {{interface.name}}_{{method.name}}_ResponseParams {{method.name|stylize_method }}( 97 {%- set response_struct = method|response_struct_from_method %}
98 Future<{{response_struct|name}}> {{method|name}}(
85 {%- for parameter in method.parameters -%} 99 {%- for parameter in method.parameters -%}
86 {{parameter.kind|dart_decl_type}} {{parameter.name}}{% if not loop.last %}, {% endif %} 100 {{parameter.kind|dart_type}} {{parameter|name}}{% if not loop.last %}, {% en dif %}
87 {%- endfor -%} 101 {%- endfor -%}
88 ); 102 );
89 {%- endif %} 103 {%- endif %}
90 {%- endfor %} 104 {%- endfor %}
91 105
92 bindings.Message handleMessage(bindings.MessageReader reader) { 106 Future<bindings.Message> handleMessage(bindings.ServiceMessage message) {
93 switch (reader.name) { 107 switch (message.header.type) {
94 {%- for method in interface.methods %} 108 {%- for method in interface.methods %}
95 case k{{interface.name}}_{{method.name}}_name: 109 {%- set request_struct = method|struct_from_method %}
96 var params = reader.decodeStruct({{interface.name}}_{{method.name}}_Para ms); 110 case k{{interface|name}}_{{method|name}}_name:
111 var params = {{request_struct|name}}.deserialize(
112 message.payload);
97 {%- if method.response_parameters == None %} 113 {%- if method.response_parameters == None %}
98 {{method.name|stylize_method}}(params); 114 {{method|name}}(
99 {%- else %}
100 var response = {{method.name|stylize_method}}(
101 {%- for parameter in method.parameters -%} 115 {%- for parameter in method.parameters -%}
102 params.{{parameter.name}}{% if not loop.last %}, {% endif %} 116 params.{{parameter|name}}{% if not loop.last %}, {% endif %}
103 {%- endfor -%} 117 {%- endfor -%}
104 ); 118 );
105 return buildResponseWithID( 119 {%- else %}
106 {{interface.name}}_{{method.name}}_ResponseParams, 120 return {{method|name}}(
107 k{{interface.name}}_{{method.name}}_name, 121 {%- for parameter in method.parameters -%}
108 reader.requestID, 122 params.{{parameter|name}}{% if not loop.last %}, {% endif %}
109 bindings.kMessageIsResponse, 123 {%- endfor -%}
110 response); 124 ).then((response) {
125 if (response != null) {
126 return buildResponseWithId(
127 response,
128 k{{interface|name}}_{{method|name}}_name,
129 message.header.requestId,
130 bindings.MessageHeader.kMessageIsResponse);
131 }
132 });
111 {%- endif %} 133 {%- endif %}
112 break; 134 break;
113 {%- endfor %} 135 {%- endfor %}
114 default: 136 default:
115 throw new Exception("Unexpected message name"); 137 throw new Exception("Unexpected message name");
116 break; 138 break;
117 } 139 }
118 return null; 140 return null;
119 } 141 }
120 } 142 }
121 143
122 144
123 {#--- TODO(zra): Validation #} 145 {#--- TODO(zra): Validation #}
124 146
125 147
126 {#--- Interface Constants #} 148 {#--- Interface Constants #}
127 {% for constant in interface.constants %} 149 {% for constant in interface.constants %}
128 final {{constant.name}} = {{constant.value|expression_to_text}}; 150 final {{constant|name}} = {{constant.value|expression_to_text}};
129 {%- endfor %} 151 {%- endfor %}
130 152
131 153
132 {#--- Interface Enums #} 154 {#--- Interface Enums #}
133 {%- from "enum_definition.tmpl" import enum_def -%} 155 {%- from "enum_definition.tmpl" import enum_def -%}
134 {%- for enum in interface.enums %} 156 {%- for enum in interface.enums %}
135 {{ enum_def("", enum) }} 157 {{ enum_def("", enum) }}
136 {%- endfor %} 158 {%- endfor %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698