• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{%- import "struct_macros.tmpl" as struct_macros %}
2{%- set class_name = struct.name ~ "_Data" -%}
3
4class {{class_name}} {
5 public:
6  static {{class_name}}* New(mojo::internal::Buffer* buf);
7
8  static bool Validate(const void* data,
9                       mojo::internal::BoundsChecker* bounds_checker);
10
11  mojo::internal::StructHeader header_;
12{{struct_macros.fields(struct)}}
13
14  void EncodePointersAndHandles(std::vector<mojo::Handle>* handles);
15  void DecodePointersAndHandles(std::vector<mojo::Handle>* handles);
16
17 private:
18  {{class_name}}();
19  ~{{class_name}}();  // NOT IMPLEMENTED
20};
21MOJO_COMPILE_ASSERT(sizeof({{class_name}}) == {{struct.packed|struct_size}},
22                    bad_sizeof_{{class_name}});
23