SerializerTest.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. // WARNING: This file is auto generated.
  6. #pragma once
  7. #include <anki/util/Array.h>
  8. namespace anki
  9. {
  10. /// ClassB class.
  11. class ClassB
  12. {
  13. public:
  14. Array<U8, 3> m_array;
  15. WeakArray<U32> m_darray;
  16. template<typename TSerializer, typename TClass>
  17. static void serializeCommon(TSerializer& s, TClass self)
  18. {
  19. s.doArray("m_array", offsetof(ClassB, m_array), &self.m_array[0], 3);
  20. s.doValue("m_darray", offsetof(ClassB, m_darray), self.m_darray);
  21. }
  22. template<typename TDeserializer>
  23. void deserialize(TDeserializer& deserializer)
  24. {
  25. serializeCommon<TDeserializer, ClassB&>(deserializer, *this);
  26. }
  27. template<typename TSerializer>
  28. void serialize(TSerializer& serializer) const
  29. {
  30. serializeCommon<TSerializer, const ClassB&>(serializer, *this);
  31. }
  32. };
  33. /// ClassA class.
  34. class ClassA
  35. {
  36. public:
  37. Array<U8, 2> m_array;
  38. U32 m_u32;
  39. U64 m_u64;
  40. WeakArray<ClassB> m_darray;
  41. template<typename TSerializer, typename TClass>
  42. static void serializeCommon(TSerializer& s, TClass self)
  43. {
  44. s.doArray("m_array", offsetof(ClassA, m_array), &self.m_array[0], 2);
  45. s.doValue("m_u32", offsetof(ClassA, m_u32), self.m_u32);
  46. s.doValue("m_u64", offsetof(ClassA, m_u64), self.m_u64);
  47. s.doValue("m_darray", offsetof(ClassA, m_darray), self.m_darray);
  48. }
  49. template<typename TDeserializer>
  50. void deserialize(TDeserializer& deserializer)
  51. {
  52. serializeCommon<TDeserializer, ClassA&>(deserializer, *this);
  53. }
  54. template<typename TSerializer>
  55. void serialize(TSerializer& serializer) const
  56. {
  57. serializeCommon<TSerializer, const ClassA&>(serializer, *this);
  58. }
  59. };
  60. } // end namespace anki