| OLD | NEW |
| 1 {%- import "interface_macros.tmpl" as interface_macros %} | 1 {%- import "interface_macros.tmpl" as interface_macros %} |
| 2 {%- set class_name = interface.name %} | 2 {%- set class_name = interface.name %} |
| 3 {%- set proxy_name = interface.name ~ "Proxy" %} | 3 {%- set proxy_name = interface.name ~ "Proxy" %} |
| 4 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} | 4 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} |
| 5 | 5 |
| 6 {%- macro alloc_params(parameters) %} | 6 {%- macro alloc_params(parameters) %} |
| 7 {%- for param in parameters %} | 7 {%- for param in parameters %} |
| 8 {%- if param.kind|is_object_kind %} | 8 {%- if param.kind|is_object_kind %} |
| 9 {{param.kind|cpp_result_type}} p{{loop.index}}; | 9 {{param.kind|cpp_result_type}} p{{loop.index}}; |
| 10 Deserialize_(params->{{param.name}}.ptr, &p{{loop.index}}); | 10 Deserialize_(params->{{param.name}}.ptr, &p{{loop.index}}); |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 switch (message->header()->name) { | 223 switch (message->header()->name) { |
| 224 {%- for method in interface.methods %} | 224 {%- for method in interface.methods %} |
| 225 case internal::k{{class_name}}_{{method.name}}_Name: { | 225 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 226 {%- if method.response_parameters == None %} | 226 {%- if method.response_parameters == None %} |
| 227 internal::{{class_name}}_{{method.name}}_Params_Data* params = | 227 internal::{{class_name}}_{{method.name}}_Params_Data* params = |
| 228 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( | 228 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( |
| 229 message->mutable_payload()); | 229 message->mutable_payload()); |
| 230 | 230 |
| 231 params->DecodePointersAndHandles(message->mutable_handles()); | 231 params->DecodePointersAndHandles(message->mutable_handles()); |
| 232 {{alloc_params(method.parameters)|indent(6)}} | 232 {{alloc_params(method.parameters)|indent(6)}} |
| 233 // A null |sink_| typically means there is a missing call to |
| 234 // InterfacePtr::set_client(). |
| 235 assert(sink_); |
| 233 sink_->{{method.name}}({{pass_params(method.parameters)}}); | 236 sink_->{{method.name}}({{pass_params(method.parameters)}}); |
| 234 return true; | 237 return true; |
| 235 {%- else %} | 238 {%- else %} |
| 236 break; | 239 break; |
| 237 {%- endif %} | 240 {%- endif %} |
| 238 } | 241 } |
| 239 {%- endfor %} | 242 {%- endfor %} |
| 240 } | 243 } |
| 241 {%- endif %} | 244 {%- endif %} |
| 242 return false; | 245 return false; |
| 243 } | 246 } |
| 244 | 247 |
| 245 bool {{class_name}}Stub::AcceptWithResponder( | 248 bool {{class_name}}Stub::AcceptWithResponder( |
| 246 mojo::Message* message, mojo::MessageReceiver* responder) { | 249 mojo::Message* message, mojo::MessageReceiver* responder) { |
| 247 {%- if interface.methods %} | 250 {%- if interface.methods %} |
| 248 switch (message->header()->name) { | 251 switch (message->header()->name) { |
| 249 {%- for method in interface.methods %} | 252 {%- for method in interface.methods %} |
| 250 case internal::k{{class_name}}_{{method.name}}_Name: { | 253 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 251 {%- if method.response_parameters != None %} | 254 {%- if method.response_parameters != None %} |
| 252 internal::{{class_name}}_{{method.name}}_Params_Data* params = | 255 internal::{{class_name}}_{{method.name}}_Params_Data* params = |
| 253 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( | 256 reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*
>( |
| 254 message->mutable_payload()); | 257 message->mutable_payload()); |
| 255 | 258 |
| 256 params->DecodePointersAndHandles(message->mutable_handles()); | 259 params->DecodePointersAndHandles(message->mutable_handles()); |
| 257 {{interface_macros.declare_callback(method)}}::Runnable* runnable = | 260 {{interface_macros.declare_callback(method)}}::Runnable* runnable = |
| 258 new {{class_name}}_{{method.name}}_ProxyToResponder( | 261 new {{class_name}}_{{method.name}}_ProxyToResponder( |
| 259 message->request_id(), responder); | 262 message->request_id(), responder); |
| 260 {{interface_macros.declare_callback(method)}} callback(runnable); | 263 {{interface_macros.declare_callback(method)}} callback(runnable); |
| 261 {{alloc_params(method.parameters)|indent(6)}} | 264 {{alloc_params(method.parameters)|indent(6)}} |
| 265 // A null |sink_| typically means there is a missing call to |
| 266 // InterfacePtr::set_client(). |
| 267 assert(sink_); |
| 262 sink_->{{method.name}}( | 268 sink_->{{method.name}}( |
| 263 {%- if method.parameters -%}{{pass_params(method.parameters)}}, {% endif -%}call
back); | 269 {%- if method.parameters -%}{{pass_params(method.parameters)}}, {% endif -%}call
back); |
| 264 return true; | 270 return true; |
| 265 {%- else %} | 271 {%- else %} |
| 266 break; | 272 break; |
| 267 {%- endif %} | 273 {%- endif %} |
| 268 } | 274 } |
| 269 {%- endfor %} | 275 {%- endfor %} |
| 270 } | 276 } |
| 271 {%- endif %} | 277 {%- endif %} |
| (...skipping 26 matching lines...) Expand all Loading... |
| 298 if (!internal::{{class_name}}_{{method.name}}_Params_Data::Validate( | 304 if (!internal::{{class_name}}_{{method.name}}_Params_Data::Validate( |
| 299 message->payload(), &bounds_checker)) { | 305 message->payload(), &bounds_checker)) { |
| 300 return false; | 306 return false; |
| 301 } | 307 } |
| 302 break; | 308 break; |
| 303 } | 309 } |
| 304 {%- endfor %} | 310 {%- endfor %} |
| 305 } | 311 } |
| 306 {%- endif %} | 312 {%- endif %} |
| 307 | 313 |
| 314 // A null |sink_| typically means there is a missing call to |
| 315 // InterfacePtr::set_client(). |
| 316 assert(sink_); |
| 308 return sink_->Accept(message); | 317 return sink_->Accept(message); |
| 309 } | 318 } |
| 310 | 319 |
| 311 {#--- Response validator definitions #} | 320 {#--- Response validator definitions #} |
| 312 {% if interface|has_callbacks %} | 321 {% if interface|has_callbacks %} |
| 313 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( | 322 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( |
| 314 mojo::MessageReceiver* sink) : MessageFilter(sink) { | 323 mojo::MessageReceiver* sink) : MessageFilter(sink) { |
| 315 } | 324 } |
| 316 | 325 |
| 317 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { | 326 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { |
| 318 {%- if interface.methods %} | 327 {%- if interface.methods %} |
| 319 switch (message->header()->name) { | 328 switch (message->header()->name) { |
| 320 {%- for method in interface.methods if method.response_parameters != None %} | 329 {%- for method in interface.methods if method.response_parameters != None %} |
| 321 case internal::k{{class_name}}_{{method.name}}_Name: { | 330 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 322 if (!message->has_flag(mojo::internal::kMessageIsResponse)) | 331 if (!message->has_flag(mojo::internal::kMessageIsResponse)) |
| 323 break; | 332 break; |
| 324 mojo::internal::BoundsChecker bounds_checker( | 333 mojo::internal::BoundsChecker bounds_checker( |
| 325 message->payload(), message->payload_num_bytes(), | 334 message->payload(), message->payload_num_bytes(), |
| 326 message->handles()->size()); | 335 message->handles()->size()); |
| 327 if (!internal::{{class_name}}_{{method.name}}_ResponseParams_Data::Validat
e( | 336 if (!internal::{{class_name}}_{{method.name}}_ResponseParams_Data::Validat
e( |
| 328 message->payload(), &bounds_checker)) { | 337 message->payload(), &bounds_checker)) { |
| 329 return false; | 338 return false; |
| 330 } | 339 } |
| 331 break; | 340 break; |
| 332 } | 341 } |
| 333 {%- endfor %} | 342 {%- endfor %} |
| 334 } | 343 } |
| 335 {%- endif %} | 344 {%- endif %} |
| 336 | 345 |
| 346 // A null |sink_| typically means there is a missing call to |
| 347 // InterfacePtr::set_client(). |
| 348 assert(sink_); |
| 337 return sink_->Accept(message); | 349 return sink_->Accept(message); |
| 338 } | 350 } |
| 339 {%- endif -%} | 351 {%- endif -%} |
| OLD | NEW |