OLD | NEW |
1 {% from 'fields/field.tmpl' import encode, declare_storage, compare %} | 1 {% from 'fields/field.tmpl' import encode, declare_storage, compare %} |
2 {% from 'macros.tmpl' import print_if %} | 2 {% from 'macros.tmpl' import print_if %} |
3 {% macro define_field_group_class(group): -%} | 3 {% macro define_field_group_class(group): -%} |
4 class {{group.type_name}} : public RefCountedCopyable<{{group.type_name}}> { | 4 class {{group.type_name}} : public RefCounted<{{group.type_name}}> { |
5 public: | 5 public: |
6 static PassRefPtr<{{group.type_name}}> Create() { | 6 static PassRefPtr<{{group.type_name}}> Create() { |
7 return AdoptRef(new {{group.type_name}}); | 7 return AdoptRef(new {{group.type_name}}); |
8 } | 8 } |
9 PassRefPtr<{{group.type_name}}> Copy() const { | 9 PassRefPtr<{{group.type_name}}> Copy() const { |
10 return AdoptRef(new {{group.type_name}}(*this)); | 10 return AdoptRef(new {{group.type_name}}(*this)); |
11 } | 11 } |
12 | 12 |
13 bool operator==(const {{group.type_name}}& other) const { | 13 bool operator==(const {{group.type_name}}& other) const { |
14 return ( | 14 return ( |
15 {% for field in group.fields %} | 15 {% for field in group.fields %} |
16 {{compare(field.wrapper_pointer_name, field.name, "other")}}{{print_if(not
loop.last, ' &&')}} | 16 {{compare(field.wrapper_pointer_name, field.name, "other")}}{{print_if(not
loop.last, ' &&')}} |
17 {% endfor %} | 17 {% endfor %} |
18 ); | 18 ); |
19 } | 19 } |
20 bool operator!=(const {{group.type_name}}& other) const { return !(*this == ot
her); } | 20 bool operator!=(const {{group.type_name}}& other) const { return !(*this == ot
her); } |
21 | 21 |
22 {% for field in group.fields %} | 22 {% for field in group.fields %} |
23 {{declare_storage(field)}} | 23 {{declare_storage(field)}} |
24 {% endfor %} | 24 {% endfor %} |
25 | 25 |
26 private: | 26 private: |
27 {{group.type_name}}() : | 27 {{group.type_name}}() : |
28 {% for field in group.fields %} | 28 {% for field in group.fields %} |
29 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} | 29 {{field.name}}({{encode(field, field.default_value)}}){{print_if(not loop.
last, ',')}} |
30 {% endfor %} | 30 {% endfor %} |
31 {} | 31 {} |
32 | 32 |
33 {{group.type_name}}(const {{group.type_name}}&) = default; | 33 {{group.type_name}}(const {{group.type_name}}& other) : |
| 34 {% for field in group.fields %} |
| 35 {{field.name}}(other.{{field.name}}){{print_if(not loop.last, ',')}} |
| 36 {% endfor %} |
| 37 {} |
34 }; | 38 }; |
35 {%- endmacro %} | 39 {%- endmacro %} |
OLD | NEW |