1 {%- import "struct_macros.tmpl" as struct_macros %}
2 {%- set class_name = struct.name ~ "_Data" -%}
6 typedef {{struct.name}} Wrapper;
8 static {{class_name}}* New(mojo::Buffer* buf, mojo::Buffer::Destructor dtor = NULL);
11 {{ struct_macros.setters(struct) }}
14 {{ struct_macros.getters(struct) }}
16 size_t ComputeSize() const;
17 {{class_name}}* Clone(mojo::Buffer* buf) const;
19 void EncodePointersAndHandles(std::vector<mojo::Handle>* handles);
20 bool DecodePointersAndHandles(mojo::Message* message);
24 ~{{class_name}}(); // NOT IMPLEMENTED
26 mojo::internal::StructHeader _header_;
27 {{ struct_macros.fields(struct) }}
29 MOJO_COMPILE_ASSERT(sizeof({{class_name}}) == {{struct.packed|struct_size}},
30 bad_sizeof_{{class_name}});