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

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

Issue 2014403002: Mojo C++ bindings: custom type mapping of map (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 class {{struct.name}}DataView { 1 class {{struct.name}}DataView {
2 public: 2 public:
3 {{struct.name}}DataView( 3 {{struct.name}}DataView(
4 internal::{{struct.name}}_Data* data, 4 internal::{{struct.name}}_Data* data,
5 mojo::internal::SerializationContext* context); 5 mojo::internal::SerializationContext* context);
6 6
7 {%- for pf in struct.packed.packed_fields_in_ordinal_order %} 7 {%- for pf in struct.packed.packed_fields_in_ordinal_order %}
8 {%- set kind = pf.field.kind -%} 8 {%- set kind = pf.field.kind -%}
9 {%- set name = pf.field.name -%} 9 {%- set name = pf.field.name -%}
10 {%- if kind|is_struct_kind or kind|is_array_kind or kind|is_string_kind %} 10 {%- if kind|is_struct_kind or kind|is_array_kind or kind|is_string_kind
11 or kind|is_map_kind %}
11 template <typename UserType> 12 template <typename UserType>
12 bool Read{{name|under_to_camel}}(UserType* value) { 13 bool Read{{name|under_to_camel}}(UserType* value) {
13 {%- if pf.min_version != 0 %} 14 {%- if pf.min_version != 0 %}
14 auto pointer = data_->header_.version >= {{pf.min_version}} 15 auto pointer = data_->header_.version >= {{pf.min_version}}
15 ? data_->{{name}}.ptr : nullptr; 16 ? data_->{{name}}.ptr : nullptr;
16 {%- else %} 17 {%- else %}
17 auto pointer = data_->{{name}}.ptr; 18 auto pointer = data_->{{name}}.ptr;
18 {%- endif %} 19 {%- endif %}
19 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>( 20 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>(
20 pointer, value, context_); 21 pointer, value, context_);
21 } 22 }
22 {%- elif kind|is_map_kind or kind|is_union_kind %} 23 {%- elif kind|is_union_kind %}
23 bool Read{{name|under_to_camel}}({{kind|cpp_wrapper_type}}* value); 24 bool Read{{name|under_to_camel}}({{kind|cpp_wrapper_type}}* value);
24 {%- elif kind|is_interface_kind or kind|is_any_handle_kind or 25 {%- elif kind|is_interface_kind or kind|is_any_handle_kind or
25 kind|is_associated_kind %} 26 kind|is_associated_kind %}
26 {{kind|cpp_wrapper_type}} Take{{name|under_to_camel}}(); 27 {{kind|cpp_wrapper_type}} Take{{name|under_to_camel}}();
27 {%- else %} 28 {%- else %}
28 {{kind|cpp_wrapper_type}} {{name}}() const; 29 {{kind|cpp_wrapper_type}} {{name}}() const;
29 {%- endif %} 30 {%- endif %}
30 {%- endfor %} 31 {%- endfor %}
31 private: 32 private:
32 internal::{{struct.name}}_Data* data_; 33 internal::{{struct.name}}_Data* data_;
33 mojo::internal::SerializationContext* context_; 34 mojo::internal::SerializationContext* context_;
34 }; 35 };
35 36
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698