• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{%- import "struct_macros.tmpl" as struct_macros %}
2{%- set class_name = struct.name ~ "_Data" %}
3
4// static
5{{class_name}}* {{class_name}}::New(mojo::internal::Buffer* buf) {
6  return new (buf->Allocate(sizeof({{class_name}}))) {{class_name}}();
7}
8
9// static
10bool {{class_name}}::Validate(const void* data,
11                              mojo::internal::BoundsChecker* bounds_checker) {
12  {{ struct_macros.validate(struct, class_name)|indent(2) }}
13}
14
15{{class_name}}::{{class_name}}() {
16  header_.num_bytes = sizeof(*this);
17  header_.num_fields = {{struct.packed.packed_fields|length}};
18}
19
20void {{class_name}}::EncodePointersAndHandles(
21    std::vector<mojo::Handle>* handles) {
22  {{ struct_macros.encodes(struct)|indent(2) }}
23}
24
25void {{class_name}}::DecodePointersAndHandles(
26    std::vector<mojo::Handle>* handles) {
27  {{ struct_macros.decodes(struct)|indent(2) }}
28}
29