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

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

Issue 2392713002: mojo: Mark DataView readers as WARN_UNUSED_RESULT. (Closed)
Patch Set: Fix attribute placement to appease gcc Created 4 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 class {{struct.name}}DataView { 1 class {{struct.name}}DataView {
2 public: 2 public:
3 {{struct.name}}DataView() {} 3 {{struct.name}}DataView() {}
4 4
5 {{struct.name}}DataView( 5 {{struct.name}}DataView(
6 internal::{{struct.name}}_Data* data, 6 internal::{{struct.name}}_Data* data,
7 mojo::internal::SerializationContext* context) 7 mojo::internal::SerializationContext* context)
8 {%- if struct|requires_context_for_data_view %} 8 {%- if struct|requires_context_for_data_view %}
9 : data_(data), context_(context) {} 9 : data_(data), context_(context) {}
10 {%- else %} 10 {%- else %}
11 : data_(data) {} 11 : data_(data) {}
12 {%- endif %} 12 {%- endif %}
13 13
14 bool is_null() const { return !data_; } 14 bool is_null() const { return !data_; }
15 15
16 {%- for pf in struct.packed.packed_fields_in_ordinal_order %} 16 {%- for pf in struct.packed.packed_fields_in_ordinal_order %}
17 {%- set kind = pf.field.kind %} 17 {%- set kind = pf.field.kind %}
18 {%- set name = pf.field.name %} 18 {%- set name = pf.field.name %}
19 {%- if kind|is_union_kind %} 19 {%- if kind|is_union_kind %}
20 inline void Get{{name|under_to_camel}}DataView( 20 inline void Get{{name|under_to_camel}}DataView(
21 {{kind|cpp_data_view_type}}* output); 21 {{kind|cpp_data_view_type}}* output);
22 22
23 template <typename UserType> 23 template <typename UserType>
24 bool Read{{name|under_to_camel}}(UserType* output) { 24 WARN_UNUSED_RESULT bool Read{{name|under_to_camel}}(UserType* output) {
25 {%- if pf.min_version != 0 %} 25 {%- if pf.min_version != 0 %}
26 auto pointer = data_->header_.version >= {{pf.min_version}} 26 auto* pointer = data_->header_.version >= {{pf.min_version}}
27 ? &data_->{{name}} : nullptr; 27 ? &data_->{{name}} : nullptr;
28 {%- else %} 28 {%- else %}
29 auto pointer = &data_->{{name}}; 29 auto* pointer = &data_->{{name}};
30 {%- endif %} 30 {%- endif %}
31 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>( 31 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>(
32 pointer, output, context_); 32 pointer, output, context_);
33 } 33 }
34 34
35 {%- elif kind|is_object_kind %} 35 {%- elif kind|is_object_kind %}
36 inline void Get{{name|under_to_camel}}DataView( 36 inline void Get{{name|under_to_camel}}DataView(
37 {{kind|cpp_data_view_type}}* output); 37 {{kind|cpp_data_view_type}}* output);
38 38
39 template <typename UserType> 39 template <typename UserType>
40 bool Read{{name|under_to_camel}}(UserType* output) { 40 WARN_UNUSED_RESULT bool Read{{name|under_to_camel}}(UserType* output) {
41 {%- if pf.min_version != 0 %} 41 {%- if pf.min_version != 0 %}
42 auto pointer = data_->header_.version >= {{pf.min_version}} 42 auto* pointer = data_->header_.version >= {{pf.min_version}}
43 ? data_->{{name}}.Get() : nullptr; 43 ? data_->{{name}}.Get() : nullptr;
44 {%- else %} 44 {%- else %}
45 auto pointer = data_->{{name}}.Get(); 45 auto* pointer = data_->{{name}}.Get();
46 {%- endif %} 46 {%- endif %}
47 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>( 47 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>(
48 pointer, output, context_); 48 pointer, output, context_);
49 } 49 }
50 50
51 {%- elif kind|is_enum_kind %} 51 {%- elif kind|is_enum_kind %}
52 template <typename UserType> 52 template <typename UserType>
53 bool Read{{name|under_to_camel}}(UserType* output) const { 53 WARN_UNUSED_RESULT bool Read{{name|under_to_camel}}(UserType* output) const {
54 {%- if pf.min_version != 0 %} 54 {%- if pf.min_version != 0 %}
55 auto data_value = data_->header_.version >= {{pf.min_version}} 55 auto data_value = data_->header_.version >= {{pf.min_version}}
56 ? data_->{{name}} : 0; 56 ? data_->{{name}} : 0;
57 {%- else %} 57 {%- else %}
58 auto data_value = data_->{{name}}; 58 auto data_value = data_->{{name}};
59 {%- endif %} 59 {%- endif %}
60 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>( 60 return mojo::internal::Deserialize<{{kind|unmapped_type_for_serializer}}>(
61 data_value, output); 61 data_value, output);
62 } 62 }
63 63
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 109
110 {%- endif %} 110 {%- endif %}
111 {%- endfor %} 111 {%- endfor %}
112 private: 112 private:
113 internal::{{struct.name}}_Data* data_ = nullptr; 113 internal::{{struct.name}}_Data* data_ = nullptr;
114 {%- if struct|requires_context_for_data_view %} 114 {%- if struct|requires_context_for_data_view %}
115 mojo::internal::SerializationContext* context_ = nullptr; 115 mojo::internal::SerializationContext* context_ = nullptr;
116 {%- endif %} 116 {%- endif %}
117 }; 117 };
118 118
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698