Jet  v1.3.3
serialization.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_SERIALIZATION_H_
8 #define INCLUDE_JET_SERIALIZATION_H_
9 
10 #include <jet/array1.h>
11 
12 #include <vector>
13 
14 namespace jet {
15 
17 class Serializable {
18  public:
19  Serializable() = default;
20 
21  virtual ~Serializable() = default;
22 
24  virtual void serialize(std::vector<uint8_t>* buffer) const = 0;
25 
27  virtual void deserialize(const std::vector<uint8_t>& buffer) = 0;
28 };
29 
31 void serialize(const Serializable* serializable, std::vector<uint8_t>* buffer);
32 
34 void serialize(const uint8_t* data, size_t size, std::vector<uint8_t>* buffer);
35 
37 template <typename T>
39  std::vector<uint8_t>* buffer);
40 
42 void deserialize(const std::vector<uint8_t>& buffer,
43  Serializable* serializable);
44 
46 void deserialize(const std::vector<uint8_t>& buffer,
47  std::vector<uint8_t>* data);
48 
50 template <typename T>
51 void deserialize(const std::vector<uint8_t>& buffer, Array1<T>* array);
52 
53 } // namespace jet
54 
55 #include "detail/serialization-inl.h"
56 
57 #endif // INCLUDE_JET_SERIALIZATION_H_
jet::Array< T, 1 >
1-D array class.
Definition: array1.h:31
jet::Serializable::Serializable
Serializable()=default
jet::ConstArrayAccessor< T, 1 >
1-D read-only array accessor class.
Definition: array_accessor1.h:184
jet
Definition: advection_solver2.h:18
jet::Serializable::~Serializable
virtual ~Serializable()=default
jet::Serializable
Abstract base class for any serializable class.
Definition: serialization.h:17
jet::Serializable::deserialize
virtual void deserialize(const std::vector< uint8_t > &buffer)=0
Deserializes this instance from the flat buffer.
jet::Serializable::serialize
virtual void serialize(std::vector< uint8_t > *buffer) const =0
Serializes this instance into the flat buffer.
jet::serialize
void serialize(const Serializable *serializable, std::vector< uint8_t > *buffer)
Serializes serializable object.
jet::deserialize
void deserialize(const std::vector< uint8_t > &buffer, Serializable *serializable)
Deserializes buffer to serializable object.
array1.h