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

Side by Side Diff: mojo/public/tools/bindings/generators/cpp_templates/union_serialization_definition.tmpl

Issue 1375313006: For c++, Generate enum classes instead of enum from mojom. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 size_t GetSerializedSize_(const {{union.name}}Ptr& input, bool inlined) { 1 size_t GetSerializedSize_(const {{union.name}}Ptr& input, bool inlined) {
2 size_t size = 0U; 2 size_t size = 0U;
3 if (!inlined) { 3 if (!inlined) {
4 size += sizeof(internal::{{union.name}}_Data); 4 size += sizeof(internal::{{union.name}}_Data);
5 } 5 }
6 6
7 if (!input) 7 if (!input)
8 return size; 8 return size;
9 9
10 mojo::internal::UnionAccessor<{{union.name}}> input_acc(input.get()); 10 mojo::internal::UnionAccessor<{{union.name}}> input_acc(input.get());
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 {%- endif %} 71 {%- endif %}
72 {% elif field.kind|is_any_handle_kind %} 72 {% elif field.kind|is_any_handle_kind %}
73 result->data.f_{{field.name}} = 73 result->data.f_{{field.name}} =
74 input_acc.data()->{{field.name}}->release().value(); 74 input_acc.data()->{{field.name}}->release().value();
75 {% elif field.kind|is_interface_kind %} 75 {% elif field.kind|is_interface_kind %}
76 mojo::internal::Interface_Data* {{field.name}} = 76 mojo::internal::Interface_Data* {{field.name}} =
77 reinterpret_cast<mojo::internal::Interface_Data*>( 77 reinterpret_cast<mojo::internal::Interface_Data*>(
78 &result->data.f_{{field.name}}); 78 &result->data.f_{{field.name}});
79 mojo::internal::InterfacePointerToData( 79 mojo::internal::InterfacePointerToData(
80 input_acc.data()->{{field.name}}->Pass(), {{field.name}}); 80 input_acc.data()->{{field.name}}->Pass(), {{field.name}});
81 {% elif field.kind|is_enum_kind %}
82 result->data.f_{{field.name}} =
83 static_cast<int32_t>(input_acc.data()->{{field.name}});
81 {% else %} 84 {% else %}
82 result->data.f_{{field.name}} = input_acc.data()->{{field.name}}; 85 result->data.f_{{field.name}} = input_acc.data()->{{field.name}};
83 {%- endif %} 86 {%- endif %}
84 break; 87 break;
85 } 88 }
86 {%- endfor %} 89 {%- endfor %}
87 default: 90 default:
88 MOJO_CHECK(false) << "No sane way to serialize a union with an unknown t ag."; 91 MOJO_CHECK(false) << "No sane way to serialize a union with an unknown t ag.";
89 break; 92 break;
90 } 93 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 {%- endif %} 137 {%- endif %}
135 break; 138 break;
136 } 139 }
137 {%- endfor %} 140 {%- endfor %}
138 default: 141 default:
139 MOJO_LOG(WARNING) << "Deserializing {{union.name}} with unknown tag!"; 142 MOJO_LOG(WARNING) << "Deserializing {{union.name}} with unknown tag!";
140 // No way to deserialize the data when we encounter an unknown tag. 143 // No way to deserialize the data when we encounter an unknown tag.
141 break; 144 break;
142 } 145 }
143 } 146 }
144 } 147 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698