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

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

Issue 2259283003: Mojo C++ bindings: share DataView class between chromium and blink variants. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@92_change_traits_param
Patch Set: . Created 4 years, 4 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
Index: mojo/public/tools/bindings/generators/cpp_templates/union_data_view_declaration.tmpl
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/union_data_view_declaration.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/union_data_view_declaration.tmpl
index 00f1cd3512e7628e0d48cd1982933a663c3b3c1b..7f363a6ce129f46fb90ef602870ae828919f0368 100644
--- a/mojo/public/tools/bindings/generators/cpp_templates/union_data_view_declaration.tmpl
+++ b/mojo/public/tools/bindings/generators/cpp_templates/union_data_view_declaration.tmpl
@@ -45,16 +45,28 @@ class {{union.name}}DataView {
data_->data.f_{{name}}, output);
}
- {{kind|get_qualified_name_for_kind}} {{name}}() const {
+ {{kind|cpp_data_view_type}} {{name}}() const {
DCHECK(is_{{name}}());
- return static_cast<{{kind|get_qualified_name_for_kind}}>(
+ return static_cast<{{kind|cpp_data_view_type}}>(
data_->data.f_{{name}});
}
-{%- elif kind|is_any_handle_or_interface_kind %}
- {{kind|cpp_wrapper_type}} Take{{name|under_to_camel}}() {
+{%- elif kind|is_any_handle_kind %}
+ {{kind|cpp_data_view_type}} Take{{name|under_to_camel}}() {
DCHECK(is_{{name}}());
- {{kind|cpp_wrapper_type}} result;
+ {{kind|cpp_data_view_type}} result;
+ bool ret =
+ mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>(
+ &data_->data.f_{{name}}, &result, context_);
+ DCHECK(ret);
+ return result;
+ }
+
+{%- elif kind|is_any_interface_kind %}
+ template <typename UserType>
+ UserType Take{{name|under_to_camel}}() {
+ DCHECK(is_{{name}}());
+ UserType result;
bool ret =
mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>(
&data_->data.f_{{name}}, &result, context_);
@@ -63,7 +75,7 @@ class {{union.name}}DataView {
}
{%- else %}
- {{kind|cpp_wrapper_type}} {{name}}() const {
+ {{kind|cpp_data_view_type}} {{name}}() const {
DCHECK(is_{{name}}());
return data_->data.f_{{name}};
}

Powered by Google App Engine
This is Rietveld 408576698