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

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

Issue 2188143002: Move generated Mojo C++ error reporting code out of line (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@before-sharing
Patch Set: Address review comments Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/cpp/bindings/lib/validation_errors.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
index 4017fc51d18c0f60e69f471c48751545640cfbe8..8fc01dc3263899057ac4248648e761dca3c25a1e 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/interface_definition.tmpl
@@ -16,13 +16,10 @@
{{serialization_context}});
{{struct_macros.deserialize(struct, "input_data_view", "p_%s", "success")}}
if (!success) {
- mojo::internal::ValidationContext validation_context(
- {{message}}->data(), {{message}}->data_num_bytes(),
- {{message}}->handles()->size(), {{message}},
+ ReportValidationErrorForMessage(
+ {{message}},
+ mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
"{{description}} deserializer");
- ReportValidationError(
- &validation_context,
- mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED);
return false;
}
{%- endmacro %}
@@ -100,9 +97,9 @@ bool {{class_name}}_{{method.name}}_HandleSyncResponse::Accept(
reinterpret_cast<internal::{{class_name}}_{{method.name}}_ResponseParams_Data*>(
message->mutable_payload());
+{%- set desc = class_name~"::"~method.name~" response" %}
{{alloc_params(method.response_param_struct, "params", "message",
- "&serialization_context_",
- "{{class_name}}::{{method.name}} response")}}
+ "&serialization_context_", desc)}}
{%- for param in method.response_parameters %}
*out_{{param.name}}_ = std::move(p_{{param.name}});
@@ -133,9 +130,9 @@ bool {{class_name}}_{{method.name}}_ForwardToCallback::Accept(
reinterpret_cast<internal::{{class_name}}_{{method.name}}_ResponseParams_Data*>(
message->mutable_payload());
+{%- set desc = class_name~"::"~method.name~" response" %}
{{alloc_params(method.response_param_struct, "params", "message",
- "&serialization_context_",
- "{{class_name}}_{{method.name}} response")}}
+ "&serialization_context_", desc)}}
if (!callback_.is_null())
callback_.Run({{pass_params(method.response_parameters)}});
return true;
@@ -217,9 +214,7 @@ void {{proxy_name}}::{{method.name}}(
{%- set response_params_struct = method.response_param_struct %}
{%- set params_description =
"%s.%s response"|format(interface.name, method.name) %}
-class {{class_name}}_{{method.name}}_ProxyToResponder
- : public base::RefCountedThreadSafe<
- {{class_name}}_{{method.name}}_ProxyToResponder> {
+class {{class_name}}_{{method.name}}_ProxyToResponder {
public:
static {{class_name}}::{{method.name}}Callback CreateCallback(
uint64_t request_id,
@@ -227,26 +222,11 @@ class {{class_name}}_{{method.name}}_ProxyToResponder
mojo::MessageReceiverWithStatus* responder,
scoped_refptr<mojo::AssociatedGroupController>
group_controller) {
- scoped_refptr<{{class_name}}_{{method.name}}_ProxyToResponder> proxy
- = new {{class_name}}_{{method.name}}_ProxyToResponder(
- request_id, is_sync, responder, group_controller);
+ std::unique_ptr<{{class_name}}_{{method.name}}_ProxyToResponder> proxy(
+ new {{class_name}}_{{method.name}}_ProxyToResponder(
+ request_id, is_sync, responder, group_controller));
return base::Bind(&{{class_name}}_{{method.name}}_ProxyToResponder::Run,
- proxy);
- }
-
- private:
- friend class base::RefCountedThreadSafe<
- {{class_name}}_{{method.name}}_ProxyToResponder>;
-
- {{class_name}}_{{method.name}}_ProxyToResponder(
- uint64_t request_id,
- bool is_sync,
- mojo::MessageReceiverWithStatus* responder,
- scoped_refptr<mojo::AssociatedGroupController> group_controller)
- : request_id_(request_id),
- is_sync_(is_sync),
- responder_(responder),
- serialization_context_(std::move(group_controller)) {
+ base::Passed(&proxy));
}
~{{class_name}}_{{method.name}}_ProxyToResponder() {
@@ -263,6 +243,18 @@ class {{class_name}}_{{method.name}}_ProxyToResponder
delete responder_;
}
+ private:
+ {{class_name}}_{{method.name}}_ProxyToResponder(
+ uint64_t request_id,
+ bool is_sync,
+ mojo::MessageReceiverWithStatus* responder,
+ scoped_refptr<mojo::AssociatedGroupController> group_controller)
+ : request_id_(request_id),
+ is_sync_(is_sync),
+ responder_(responder),
+ serialization_context_(std::move(group_controller)) {
+ }
+
void Run(
{{interface_macros.declare_responder_params(
"in_", method.response_parameters, for_blink,
@@ -320,9 +312,9 @@ bool {{class_name}}Stub::Accept(mojo::Message* message) {
reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*>(
message->mutable_payload());
+{%- set desc = class_name~"::"~method.name %}
{{alloc_params(method.param_struct, "params", "message",
- "&serialization_context_", "{{class_name}}::{{method.name}}")
- |indent(4)}}
+ "&serialization_context_", desc)|indent(4)}}
// A null |sink_| means no implementation was bound.
assert(sink_);
TRACE_EVENT0("mojom", "{{class_name}}::{{method.name}}");
@@ -351,8 +343,9 @@ bool {{class_name}}Stub::AcceptWithResponder(
reinterpret_cast<internal::{{class_name}}_{{method.name}}_Params_Data*>(
message->mutable_payload());
+{%- set desc = class_name~"::"~method.name %}
{{alloc_params(method.param_struct, "params", "message",
- "&serialization_context_", "{{class_name}}::{{method.name}}")|
+ "&serialization_context_", desc)|
indent(4)}}
{{class_name}}::{{method.name}}Callback callback =
{{class_name}}_{{method.name}}_ProxyToResponder::CreateCallback(
« no previous file with comments | « mojo/public/cpp/bindings/lib/validation_errors.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698