Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 {%- set class_name = interface.name %} | 3 {%- set class_name = interface.name %} |
| 4 {%- set proxy_name = interface.name ~ "Proxy" %} | 4 {%- set proxy_name = interface.name ~ "Proxy" %} |
| 5 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} | 5 {%- set namespace_as_string = "%s"|format(namespace|replace(".","::")) %} |
| 6 | 6 |
| 7 {%- macro alloc_params(struct) %} | 7 {%- macro alloc_params(struct) %} |
| 8 {%- for param in struct.packed.packed_fields_in_ordinal_order %} | 8 {%- for param in struct.packed.packed_fields_in_ordinal_order %} |
| 9 {{param.field.kind|cpp_result_type}} p_{{param.field.name}}{}; | 9 {{param.field.kind|cpp_result_type}} p_{{param.field.name}}{}; |
| 10 {%- endfor %} | 10 {%- endfor %} |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 221 | 221 |
| 222 bool {{class_name}}RequestValidator::Accept(mojo::Message* message) { | 222 bool {{class_name}}RequestValidator::Accept(mojo::Message* message) { |
| 223 {%- if interface.methods %} | 223 {%- if interface.methods %} |
| 224 switch (message->header()->name) { | 224 switch (message->header()->name) { |
| 225 {%- for method in interface.methods %} | 225 {%- for method in interface.methods %} |
| 226 case internal::k{{class_name}}_{{method.name}}_Name: { | 226 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 227 {%- if method.response_parameters != None %} | 227 {%- if method.response_parameters != None %} |
| 228 if (!message->has_flag(mojo::internal::kMessageExpectsResponse)) | 228 if (!message->has_flag(mojo::internal::kMessageExpectsResponse)) |
| 229 break; | 229 break; |
| 230 {%- else %} | 230 {%- else %} |
| 231 if (message->has_flag(mojo::internal::kMessageExpectsResponse) || | 231 if (message->has_flag(mojo::internal::kMessageExpectsResponse) || |
|
yzshen1
2015/02/23 19:08:02
Please remember to reject in this case as well as
| |
| 232 message->has_flag(mojo::internal::kMessageIsResponse)) { | 232 message->has_flag(mojo::internal::kMessageIsResponse)) { |
| 233 break; | 233 break; |
| 234 } | 234 } |
| 235 {%- endif %} | 235 {%- endif %} |
| 236 mojo::internal::BoundsChecker bounds_checker( | 236 mojo::internal::BoundsChecker bounds_checker( |
| 237 message->payload(), message->payload_num_bytes(), | 237 message->payload(), message->payload_num_bytes(), |
| 238 message->handles()->size()); | 238 message->handles()->size()); |
| 239 if (!internal::{{class_name}}_{{method.name}}_Params_Data::Validate( | 239 if (!internal::{{class_name}}_{{method.name}}_Params_Data::Validate( |
| 240 message->payload(), &bounds_checker)) { | 240 message->payload(), &bounds_checker)) { |
| 241 return false; | 241 return false; |
| 242 } | 242 } |
| 243 break; | 243 break; |
| 244 } | 244 } |
| 245 {%- endfor %} | 245 {%- endfor %} |
| 246 default: { | |
| 247 // Unrecognized message. | |
| 248 ReportValidationError(mojo::internal::VALIDATION_ERROR_UNKOWN_METHOD); | |
| 249 return false; | |
| 250 } | |
| 246 } | 251 } |
| 247 {%- endif %} | 252 {%- endif %} |
| 248 | 253 |
| 249 assert(sink_); | 254 assert(sink_); |
| 250 return sink_->Accept(message); | 255 return sink_->Accept(message); |
| 251 } | 256 } |
| 252 | 257 |
| 253 {#--- Response validator definitions #} | 258 {#--- Response validator definitions #} |
| 254 {% if interface|has_callbacks %} | 259 {% if interface|has_callbacks %} |
| 255 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( | 260 {{class_name}}ResponseValidator::{{class_name}}ResponseValidator( |
| 256 mojo::MessageReceiver* sink) : MessageFilter(sink) { | 261 mojo::MessageReceiver* sink) : MessageFilter(sink) { |
| 257 } | 262 } |
| 258 | 263 |
| 259 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { | 264 bool {{class_name}}ResponseValidator::Accept(mojo::Message* message) { |
| 260 {%- if interface.methods %} | 265 {%- if interface.methods %} |
| 261 switch (message->header()->name) { | 266 switch (message->header()->name) { |
| 262 {%- for method in interface.methods if method.response_parameters != None %} | 267 {%- for method in interface.methods if method.response_parameters != None %} |
| 263 case internal::k{{class_name}}_{{method.name}}_Name: { | 268 case internal::k{{class_name}}_{{method.name}}_Name: { |
| 264 if (!message->has_flag(mojo::internal::kMessageIsResponse)) | 269 if (!message->has_flag(mojo::internal::kMessageIsResponse)) |
|
yzshen1
2015/02/23 19:08:02
ditto
| |
| 265 break; | 270 break; |
| 266 mojo::internal::BoundsChecker bounds_checker( | 271 mojo::internal::BoundsChecker bounds_checker( |
| 267 message->payload(), message->payload_num_bytes(), | 272 message->payload(), message->payload_num_bytes(), |
| 268 message->handles()->size()); | 273 message->handles()->size()); |
| 269 if (!internal::{{class_name}}_{{method.name}}_ResponseParams_Data::Validat e( | 274 if (!internal::{{class_name}}_{{method.name}}_ResponseParams_Data::Validat e( |
| 270 message->payload(), &bounds_checker)) { | 275 message->payload(), &bounds_checker)) { |
| 271 return false; | 276 return false; |
| 272 } | 277 } |
| 273 break; | 278 break; |
| 274 } | 279 } |
| 275 {%- endfor %} | 280 {%- endfor %} |
| 281 default: { | |
| 282 // Unrecognized message. | |
| 283 ReportValidationError(mojo::internal::VALIDATION_ERROR_UNKOWN_METHOD); | |
| 284 return false; | |
| 285 } | |
| 276 } | 286 } |
| 277 {%- endif %} | 287 {%- endif %} |
| 278 | 288 |
| 279 assert(sink_); | 289 assert(sink_); |
| 280 return sink_->Accept(message); | 290 return sink_->Accept(message); |
| 281 } | 291 } |
| 282 {%- endif -%} | 292 {%- endif -%} |
| OLD | NEW |