Row.cpp 1009 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * Copyright (c) 2021, Jan de Visser <jan@de-visser.net>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibSQL/Meta.h>
  7. #include <LibSQL/Row.h>
  8. #include <LibSQL/Serializer.h>
  9. #include <LibSQL/Tuple.h>
  10. namespace SQL {
  11. Row::Row()
  12. : Tuple()
  13. {
  14. }
  15. Row::Row(TupleDescriptor const& descriptor)
  16. : Tuple(descriptor)
  17. {
  18. }
  19. Row::Row(RefPtr<TableDef> table, u32 pointer)
  20. : Tuple(table->to_tuple_descriptor())
  21. , m_table(table)
  22. {
  23. set_pointer(pointer);
  24. }
  25. Row::Row(RefPtr<TableDef> table, u32 pointer, Serializer& serializer)
  26. : Row(move(table), pointer)
  27. {
  28. Row::deserialize(serializer);
  29. }
  30. void Row::deserialize(Serializer& serializer)
  31. {
  32. Tuple::deserialize(serializer);
  33. m_next_pointer = serializer.deserialize<u32>();
  34. }
  35. void Row::serialize(Serializer& serializer) const
  36. {
  37. Tuple::serialize(serializer);
  38. serializer.serialize<u32>(next_pointer());
  39. }
  40. void Row::copy_from(Row const& other)
  41. {
  42. Tuple::copy_from(other);
  43. m_next_pointer = other.next_pointer();
  44. }
  45. }