blob: 34c0f115097ca76916388d7cfe2d43d69b592078 [file] [log] [blame]
{%- import "struct_macros.tmpl" as struct_macros %}
{%- set class_name = struct.name ~ "_Data" -%}
class {{class_name}} {
public:
static {{class_name}}* New(mojo::internal::Buffer* buf);
static bool Validate(const void* data,
mojo::internal::BoundsChecker* bounds_checker);
mojo::internal::StructHeader header_;
{{struct_macros.fields(struct)}}
void EncodePointersAndHandles(std::vector<mojo::Handle>* handles);
void DecodePointersAndHandles(std::vector<mojo::Handle>* handles);
private:
{{class_name}}();
~{{class_name}}() = delete;
};
static_assert(sizeof({{class_name}}) == {{struct.packed|struct_size}},
"Bad sizeof({{class_name}})");