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 | 4 |
5 {%- macro alloc_params(parameters) %} | 5 {%- macro alloc_params(parameters) %} |
6 {%- for param in parameters %} | 6 {%- for param in parameters %} |
7 {%- if param.kind|is_object_kind %} | 7 {%- if param.kind|is_object_kind %} |
8 {{param.kind|cpp_result_type}} p{{loop.index}}; | 8 {{param.kind|cpp_result_type}} p{{loop.index}}; |
9 Deserialize_(params->{{param.name}}.ptr, &p{{loop.index}}); | 9 Deserialize_(params->{{param.name}}.ptr, &p{{loop.index}}); |
10 {% endif -%} | 10 {% endif -%} |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 return false; | 250 return false; |
251 } | 251 } |
252 | 252 |
253 {#--- Request validator definitions #} | 253 {#--- Request validator definitions #} |
254 | 254 |
255 {{class_name}}RequestValidator::{{class_name}}RequestValidator( | 255 {{class_name}}RequestValidator::{{class_name}}RequestValidator( |
256 mojo::MessageReceiver* sink) : MessageFilter(sink) { | 256 mojo::MessageReceiver* sink) : MessageFilter(sink) { |
257 } | 257 } |
258 | 258 |
259 bool {{class_name}}RequestValidator::Accept(mojo::Message* message) { | 259 bool {{class_name}}RequestValidator::Accept(mojo::Message* message) { |
260 // TODO(yzshen): implement validation logic. | 260 {%- if interface.methods %} |
| 261 switch (message->header()->name) { |
| 262 {%- for method in interface.methods %} |
| 263 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 264 {%- if method.response_parameters != None %} |
| 265 if (!message->has_flag(mojo::internal::kMessageExpectsResponse)) |
| 266 break; |
| 267 {%- else %} |
| 268 if (message->has_flag(mojo::internal::kMessageExpectsResponse) || |
| 269 message->has_flag(mojo::internal::kMessageIsResponse)) { |
| 270 break; |
| 271 } |
| 272 {%- endif %} |
| 273 mojo::internal::BoundsChecker bounds_checker( |
| 274 message->payload(), message->payload_num_bytes(), |
| 275 message->handles()->size()); |
| 276 if (!internal::{{class_name}}_{{method.name}}_Params_Data::Validate( |
| 277 message->payload(), &bounds_checker)) { |
| 278 return false; |
| 279 } |
| 280 break; |
| 281 } |
| 282 {%- endfor %} |
| 283 } |
| 284 {%- endif %} |
| 285 |
261 return sink_->Accept(message); | 286 return sink_->Accept(message); |
262 } | 287 } |
263 | 288 |
264 {#--- Response validator definitions #} | 289 {#--- Response validator definitions #} |
265 {% if interface|has_callbacks %} | 290 {% if interface|has_callbacks %} |
266 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( | 291 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( |
267 mojo::MessageReceiver* sink) : MessageFilter(sink) { | 292 mojo::MessageReceiver* sink) : MessageFilter(sink) { |
268 } | 293 } |
269 | 294 |
270 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { | 295 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { |
271 // TODO(yzshen): implement validation logic. | 296 {%- if interface.methods %} |
| 297 switch (message->header()->name) { |
| 298 {%- for method in interface.methods if method.response_parameters != None %} |
| 299 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 300 if (!message->has_flag(mojo::internal::kMessageIsResponse)) |
| 301 break; |
| 302 mojo::internal::BoundsChecker bounds_checker( |
| 303 message->payload(), message->payload_num_bytes(), |
| 304 message->handles()->size()); |
| 305 if (!internal::{{class_name}}_{{method.name}}_ResponseParams_Data::Validat
e( |
| 306 message->payload(), &bounds_checker)) { |
| 307 return false; |
| 308 } |
| 309 break; |
| 310 } |
| 311 {%- endfor %} |
| 312 } |
| 313 {%- endif %} |
| 314 |
272 return sink_->Accept(message); | 315 return sink_->Accept(message); |
273 } | 316 } |
274 {%- endif -%} | 317 {%- endif -%} |
OLD | NEW |