SerializerTest.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. /// ClassB class.
  10. class ClassB
  11. {
  12. public:
  13. Array<U8, 3> m_array;
  14. WeakArray<U32> m_darray;
  15. template<typename TSerializer, typename TClass>
  16. static void serializeCommon(TSerializer& s, TClass self)
  17. {
  18. s.doArray("m_array", offsetof(ClassB, m_array), &self.m_array[0], 3);
  19. s.doValue("m_darray", offsetof(ClassB, m_darray), self.m_darray);
  20. }
  21. template<typename TDeserializer>
  22. void deserialize(TDeserializer& deserializer)
  23. {
  24. serializeCommon<TDeserializer, ClassB&>(deserializer, *this);
  25. }
  26. template<typename TSerializer>
  27. void serialize(TSerializer& serializer) const
  28. {
  29. serializeCommon<TSerializer, const ClassB&>(serializer, *this);
  30. }
  31. };
  32. /// ClassA class.
  33. class ClassA
  34. {
  35. public:
  36. Array<U8, 2> m_array;
  37. U32 m_u32;
  38. U64 m_u64;
  39. WeakArray<ClassB> m_darray;
  40. template<typename TSerializer, typename TClass>
  41. static void serializeCommon(TSerializer& s, TClass self)
  42. {
  43. s.doArray("m_array", offsetof(ClassA, m_array), &self.m_array[0], 2);
  44. s.doValue("m_u32", offsetof(ClassA, m_u32), self.m_u32);
  45. s.doValue("m_u64", offsetof(ClassA, m_u64), self.m_u64);
  46. s.doValue("m_darray", offsetof(ClassA, m_darray), self.m_darray);
  47. }
  48. template<typename TDeserializer>
  49. void deserialize(TDeserializer& deserializer)
  50. {
  51. serializeCommon<TDeserializer, ClassA&>(deserializer, *this);
  52. }
  53. template<typename TSerializer>
  54. void serialize(TSerializer& serializer) const
  55. {
  56. serializeCommon<TSerializer, const ClassA&>(serializer, *this);
  57. }
  58. };
  59. } // end namespace anki