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

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

Issue 2498743002: Mojo: introducing a thread safe interface pointer. (Closed)
Patch Set: Fix Android compile Created 4 years, 1 month 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 {%- import "interface_macros.tmpl" as interface_macros %} 1 {%- import "interface_macros.tmpl" as interface_macros %}
2 {%- import "struct_macros.tmpl" as struct_macros %} 2 {%- import "struct_macros.tmpl" as struct_macros %}
3 3
4 {%- set class_name = interface.name %} 4 {%- set class_name = interface.name %}
5 {%- set proxy_name = interface.name ~ "Proxy" %} 5 {%- set proxy_name = interface.name ~ "Proxy" %}
6 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} 6 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %}
7 7
8 {%- macro alloc_params(struct, params, message, serialization_context, 8 {%- macro alloc_params(struct, params, message, serialization_context,
9 description) %} 9 description) %}
10 ({{serialization_context}})->handles.Swap(({{message}})->mutable_handles()); 10 ({{serialization_context}})->handles.Swap(({{message}})->mutable_handles());
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 152
153 {%- for method in interface.methods %} 153 {%- for method in interface.methods %}
154 {%- set message_name = 154 {%- set message_name =
155 "internal::k%s_%s_Name"|format(interface.name, method.name) %} 155 "internal::k%s_%s_Name"|format(interface.name, method.name) %}
156 {%- set params_struct = method.param_struct %} 156 {%- set params_struct = method.param_struct %}
157 {%- set params_description = 157 {%- set params_description =
158 "%s.%s request"|format(interface.name, method.name) %} 158 "%s.%s request"|format(interface.name, method.name) %}
159 {%- if method.sync %} 159 {%- if method.sync %}
160 bool {{proxy_name}}::{{method.name}}( 160 bool {{proxy_name}}::{{method.name}}(
161 {{interface_macros.declare_sync_method_params("param_", method)}}) { 161 {{interface_macros.declare_sync_method_params("param_", method)}}) {
162 mojo::internal::SerializationContext serialization_context;
163 serialization_context.group_controller = group_controller_;
yzshen1 2016/11/15 18:53:46 nit: please directly pass the group controller to
Jay Civelli 2016/11/15 19:36:38 Done.
162 {{struct_macros.get_serialized_size(params_struct, "param_%s", 164 {{struct_macros.get_serialized_size(params_struct, "param_%s",
163 "&serialization_context_")}} 165 "&serialization_context")}}
164 166
165 mojo::internal::RequestMessageBuilder builder({{message_name}}, size, 167 mojo::internal::RequestMessageBuilder builder({{message_name}}, size,
166 mojo::Message::kFlagIsSync); 168 mojo::Message::kFlagIsSync);
167 169
168 {{build_message(params_struct, "param_%s", params_description, 170 {{build_message(params_struct, "param_%s", params_description,
169 "&serialization_context_")}} 171 "&serialization_context")}}
170 172
171 bool result = false; 173 bool result = false;
172 mojo::MessageReceiver* responder = 174 mojo::MessageReceiver* responder =
173 new {{class_name}}_{{method.name}}_HandleSyncResponse( 175 new {{class_name}}_{{method.name}}_HandleSyncResponse(
174 serialization_context_.group_controller, &result 176 group_controller_.get(), &result
yzshen1 2016/11/15 18:53:46 I think .get() is not needed?
Jay Civelli 2016/11/15 19:36:38 Removed.
175 {%- for param in method.response_parameters -%} 177 {%- for param in method.response_parameters -%}
176 , param_{{param.name}} 178 , param_{{param.name}}
177 {%- endfor %}); 179 {%- endfor %});
178 if (!receiver_->AcceptWithResponder(builder.message(), responder)) 180 if (!receiver_->AcceptWithResponder(builder.message(), responder))
179 delete responder; 181 delete responder;
180 return result; 182 return result;
181 } 183 }
182 {%- endif %} 184 {%- endif %}
183 185
184 void {{proxy_name}}::{{method.name}}( 186 void {{proxy_name}}::{{method.name}}(
185 {{interface_macros.declare_request_params("in_", method)}}) { 187 {{interface_macros.declare_request_params("in_", method)}}) {
188 mojo::internal::SerializationContext serialization_context;
189 serialization_context.group_controller = group_controller_;
186 {{struct_macros.get_serialized_size(params_struct, "in_%s", 190 {{struct_macros.get_serialized_size(params_struct, "in_%s",
187 "&serialization_context_")}} 191 "&serialization_context")}}
188 192
189 {%- if method.response_parameters != None %} 193 {%- if method.response_parameters != None %}
190 mojo::internal::RequestMessageBuilder builder({{message_name}}, size); 194 mojo::internal::RequestMessageBuilder builder({{message_name}}, size);
191 {%- else %} 195 {%- else %}
192 mojo::internal::MessageBuilder builder({{message_name}}, size); 196 mojo::internal::MessageBuilder builder({{message_name}}, size);
193 {%- endif %} 197 {%- endif %}
194 198
195 {{build_message(params_struct, "in_%s", params_description, 199 {{build_message(params_struct, "in_%s", params_description,
196 "&serialization_context_")}} 200 "&serialization_context")}}
197 201
198 {%- if method.response_parameters != None %} 202 {%- if method.response_parameters != None %}
199 mojo::MessageReceiver* responder = 203 mojo::MessageReceiver* responder =
200 new {{class_name}}_{{method.name}}_ForwardToCallback( 204 new {{class_name}}_{{method.name}}_ForwardToCallback(
201 callback, serialization_context_.group_controller); 205 callback, group_controller_.get());
202 if (!receiver_->AcceptWithResponder(builder.message(), responder)) 206 if (!receiver_->AcceptWithResponder(builder.message(), responder))
203 delete responder; 207 delete responder;
204 {%- else %} 208 {%- else %}
205 bool ok = receiver_->Accept(builder.message()); 209 bool ok = receiver_->Accept(builder.message());
206 // This return value may be ignored as !ok implies the Connector has 210 // This return value may be ignored as !ok implies the Connector has
207 // encountered an error, which will be visible through other means. 211 // encountered an error, which will be visible through other means.
208 ALLOW_UNUSED_LOCAL(ok); 212 ALLOW_UNUSED_LOCAL(ok);
209 {%- endif %} 213 {%- endif %}
210 } 214 }
211 {%- endfor %} 215 {%- endfor %}
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 break; 444 break;
441 } 445 }
442 446
443 // Unrecognized message. 447 // Unrecognized message.
444 ReportValidationError( 448 ReportValidationError(
445 &validation_context, 449 &validation_context,
446 mojo::internal::VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD); 450 mojo::internal::VALIDATION_ERROR_MESSAGE_HEADER_UNKNOWN_METHOD);
447 return false; 451 return false;
448 } 452 }
449 {%- endif -%} 453 {%- endif -%}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698