Devel Lib
SerializableCharArray.h
1 #pragma once
2 
3 #include "Core/CharArray/CharArray.h"
4 #include "Serializing/Core/SerializableData.h"
5 
8 namespace Devel::Serializing {
9 #pragma pack(push, 1)
10 
17  template<size_t Size, bool IsHidden = false, typename T = CCharArray<Size>>
18  class ICharArray : public IData<T, IsHidden> {
19  private:
23  bool serialize(IO::CWriteStream &i_oStream) override {
24  i_oStream.push<Size>(this->m_tValue);
25  return true;
26  }
27 
28  private:
32  bool deserialize(IO::CReadStream &i_oStream) override {
33  this->m_tValue = i_oStream.getArray<Size>();
34  return true;
35  }
36 
40  bool deserialize(const char *i_szValue) override {
41  this->m_tValue = i_szValue;
42  return true;
43  }
44 
49  bool deserialize(std::vector<std::string>::const_iterator &i_oIt,
50  const std::vector<std::string>::const_iterator &i_oItEnd) override {
51  this->m_tValue = *i_oIt++;
52  return true;
53  }
54 
55  public:
56  CreateSerializeOperators(T, IsHidden);
57  };
58 
59 #pragma pack(pop)
60 }
A class for reading data from a buffer. This class provides functionality to read data from a buffer....
Definition: ReadStream.h:37
CCharArray< TSize > getArray(const size_t i_nPosition, const bool i_fSetPosition)
Reads an array from the buffer.
Definition: ReadStream.h:399
A class for writing data to a buffer. This class provides functionality to write data to a buffer....
Definition: WriteStream.h:42
void push(const void *i_pBuffer, size_t i_nSize)
Pushes the specified data to the buffer.
Definition: WriteStream.cpp:30
A class representing a fixed-size character array for serialization.
Definition: SerializableCharArray.h:18
Template class representing a data field.
Definition: SerializableData.h:86
T m_tValue
The value.
Definition: SerializableData.h:78
The namespace encapsulating serializing related functionality in the Devel framework.