| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include "{{__schema_header_file}}"
- {{namespace_with_grace_begin __top_module}}
- {{~for bean in __beans~}}
- bool {{make_cpp_name bean.full_name}}::deserialize(::luban::ByteBuf& _buf)
- {
- {{~if bean.parent_def_type~}}
- if (!{{make_cpp_name bean.parent_def_type.full_name}}::deserialize(_buf))
- {
- return false;
- }
- {{~end~}}
- {{~ for field in bean.export_fields ~}}
- {{deserialize '_buf' (format_field_name __code_style field.name) field.ctype}}
- {{~end~}}
- return true;
- }
- {{~if bean.is_abstract_type~}}
- bool {{make_cpp_name bean.full_name}}::deserialize{{bean.name}}(::luban::ByteBuf& _buf, {{make_cpp_name bean.full_name}}*& _out)
- {
- int32_t id;
- if (!_buf.readInt(id)) return false;
- switch (id)
- {
- {{~for child in bean.hierarchy_not_abstract_children~}}
- case {{make_type_cpp_name child}}::__ID__: { _out = LUBAN_NEW({{make_type_cpp_name child}}); if (_out->deserialize(_buf)) { return true; } else { _out = nullptr; return false;} }
- {{~end~}}
- default: { _out = nullptr; return false;}
- }
- }
- {{~else~}}
- bool {{make_cpp_name bean.full_name}}::deserialize{{bean.name}}(::luban::ByteBuf& _buf, {{make_cpp_name bean.full_name}}*& _out)
- {
- _out = LUBAN_NEW({{make_type_cpp_name bean}});
- return _out->deserialize(_buf);
- }
- {{~end~}}
- {{~end~}}
- {{namespace_with_grace_end __top_module}}
|