Browse Source

Added ISerializable interface

- added ISerializable interface to provide
possibility to serialize classes
Patrick 4 years ago
parent
commit
72307823fd
2 changed files with 29 additions and 1 deletions
  1. 2 1
      CMakeLists.txt
  2. 27 0
      source/serialization/ISerializable.hpp

+ 2 - 1
CMakeLists.txt

@@ -78,7 +78,8 @@ set(SOURCE_FILES
         ${CMAKE_CURRENT_SOURCE_DIR}/source/io/logging/Logger.hpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/io/logging/Logger.cpp
         ${CMAKE_CURRENT_SOURCE_DIR}/source/io/logging/LogLevel.cpp
-        ${CMAKE_CURRENT_SOURCE_DIR}/source/io/logging/LogLevelValue.hpp)
+        ${CMAKE_CURRENT_SOURCE_DIR}/source/io/logging/LogLevelValue.hpp
+        ${CMAKE_CURRENT_SOURCE_DIR}/source/serialization/ISerializable.hpp)
 
 set(TEST_FILES
         ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/boxing/IntegerTest.cpp

+ 27 - 0
source/serialization/ISerializable.hpp

@@ -0,0 +1,27 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2020-08-21
+ * Changed:         2020-08-21
+ *
+ * */
+
+#ifndef SERIALIZABLE_HPP
+#define SERIALIZABLE_HPP
+
+#include "../base/Types.hpp"
+
+namespace ls_std {
+  class ISerializable {
+    public:
+
+      ISerializable() = default;
+      ~ISerializable() = default;
+
+      virtual const ls_std::byte* Marshal() = 0;
+      virtual void Unmarshal(const ls_std::byte* _data) = 0;
+  };
+}
+
+#endif