OLD | NEW |
1 {%- set class_name = struct.name ~ "_Data" -%} | 1 {%- set class_name = struct.name ~ "_Data" -%} |
2 | 2 |
3 class {{class_name}} { | 3 class {{class_name}} { |
4 public: | 4 public: |
5 static {{class_name}}* New(mojo::internal::Buffer* buf) { | 5 static {{class_name}}* New(mojo::internal::Buffer* buf) { |
6 return new (buf->Allocate(sizeof({{class_name}}))) {{class_name}}(); | 6 return new (buf->Allocate(sizeof({{class_name}}))) {{class_name}}(); |
7 } | 7 } |
8 | 8 |
9 static bool Validate(const void* data, | 9 static bool Validate(const void* data, |
10 mojo::internal::ValidationContext* validation_context); | 10 mojo::internal::ValidationContext* validation_context); |
11 | 11 |
12 {% from "enum_macros.tmpl" import enum_data_decl -%} | |
13 {#--- Enums #} | |
14 {%- for enum in struct.enums -%} | |
15 {%- if enum|is_native_only_kind %} | |
16 using {{enum.name}}_Data = mojo::internal::NativeEnum_Data; | |
17 {%- else %} | |
18 {{enum_data_decl(enum)|indent(2)}} | |
19 {%- endif %} | |
20 {%- endfor %} | |
21 | |
22 mojo::internal::StructHeader header_; | 12 mojo::internal::StructHeader header_; |
23 {%- for packed_field in struct.packed.packed_fields %} | 13 {%- for packed_field in struct.packed.packed_fields %} |
24 {%- set name = packed_field.field.name %} | 14 {%- set name = packed_field.field.name %} |
25 {%- set kind = packed_field.field.kind %} | 15 {%- set kind = packed_field.field.kind %} |
26 {%- if kind.spec == 'b' %} | 16 {%- if kind.spec == 'b' %} |
27 uint8_t {{name}} : 1; | 17 uint8_t {{name}} : 1; |
28 {%- else %} | 18 {%- else %} |
29 {{kind|cpp_field_type}} {{name}}; | 19 {{kind|cpp_field_type}} {{name}}; |
30 {%- endif %} | 20 {%- endif %} |
31 {%- if not loop.last %} | 21 {%- if not loop.last %} |
(...skipping 15 matching lines...) Expand all Loading... |
47 {%- endif %} | 37 {%- endif %} |
48 {%- endif %} | 38 {%- endif %} |
49 | 39 |
50 private: | 40 private: |
51 {{class_name}}() : header_({sizeof(*this), {{struct.versions[-1].version}}}) { | 41 {{class_name}}() : header_({sizeof(*this), {{struct.versions[-1].version}}}) { |
52 } | 42 } |
53 ~{{class_name}}() = delete; | 43 ~{{class_name}}() = delete; |
54 }; | 44 }; |
55 static_assert(sizeof({{class_name}}) == {{struct.versions[-1].num_bytes}}, | 45 static_assert(sizeof({{class_name}}) == {{struct.versions[-1].num_bytes}}, |
56 "Bad sizeof({{class_name}})"); | 46 "Bad sizeof({{class_name}})"); |
OLD | NEW |