Просмотр исходного кода

Move interfaces to dedicated "interface" directory

Patrick-Christopher Mattulat 2 лет назад
Родитель
Сommit
768cfe2a30
42 измененных файлов с 171 добавлено и 164 удалено
  1. 3 3
      include/ls_std/boxing/Boolean.hpp
  2. 3 3
      include/ls_std/boxing/Double.hpp
  3. 3 3
      include/ls_std/boxing/Float.hpp
  4. 5 5
      include/ls_std/boxing/Integer.hpp
  5. 5 5
      include/ls_std/boxing/Long.hpp
  6. 3 3
      include/ls_std/boxing/String.hpp
  7. 3 3
      include/ls_std/core/Version.hpp
  8. 2 2
      include/ls_std/core/interface/IBoxing.hpp
  9. 5 5
      include/ls_std/core/interface/IEventSubscriber.hpp
  10. 3 1
      include/ls_std/core/interface/IFactory.hpp
  11. 2 2
      include/ls_std/core/interface/IListener.hpp
  12. 2 2
      include/ls_std/core/interface/IReader.hpp
  13. 35 0
      include/ls_std/core/interface/ISerializable.hpp
  14. 2 2
      include/ls_std/core/interface/IStorable.hpp
  15. 2 2
      include/ls_std/core/interface/IWriter.hpp
  16. 2 2
      include/ls_std/event/Event.hpp
  17. 1 1
      include/ls_std/event/EventHandler.hpp
  18. 4 4
      include/ls_std/event/EventManager.hpp
  19. 6 6
      include/ls_std/event/serialization/SerializableJsonEvent.hpp
  20. 2 2
      include/ls_std/io/FileOutputStream.hpp
  21. 2 2
      include/ls_std/io/FileReader.hpp
  22. 2 2
      include/ls_std/io/FileWriter.hpp
  23. 2 2
      include/ls_std/io/StandardOutputWriter.hpp
  24. 2 2
      include/ls_std/io/StorableFile.hpp
  25. 2 2
      include/ls_std/io/kv/KvFileReader.hpp
  26. 4 4
      include/ls_std/io/logging/Logger.hpp
  27. 2 2
      include/ls_std/io/xml/XmlReader.hpp
  28. 5 5
      include/ls_std/logic/Narrator.hpp
  29. 1 1
      include/ls_std/logic/State.hpp
  30. 5 5
      include/ls_std/logic/serialization/SerializableJsonState.hpp
  31. 5 5
      include/ls_std/logic/serialization/SerializableJsonStateConnection.hpp
  32. 4 4
      include/ls_std/logic/serialization/SerializableJsonStateMachine.hpp
  33. 9 10
      include/ls_std/ls_std.hpp
  34. 0 29
      include/ls_std/serialization/ISerializable.hpp
  35. 2 2
      source/ls_std/event/EventManager.cpp
  36. 2 2
      source/ls_std/io/logging/Logger.cpp
  37. 3 3
      source/ls_std/logic/Narrator.cpp
  38. 8 8
      test/cases/io/logging/LoggerTest.cpp
  39. 14 14
      test/cases/logic/NarratorTest.cpp
  40. 1 1
      test/classes/event/DailyNewsAgency.hpp
  41. 1 1
      test/classes/event/GossipNewsAgency.hpp
  42. 2 2
      test/classes/observer/TestDataMercedesCar.hpp

+ 3 - 3
include/ls_std/boxing/Boolean.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-09
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -12,7 +12,7 @@
 
 #include <memory>
 #include <ls_std/core/Class.hpp>
-#include "IBoxing.hpp"
+#include "ls_std/core/interface/IBoxing.hpp"
 
 namespace ls
 {
@@ -20,7 +20,7 @@ namespace ls
   {
     namespace boxing
     {
-      class Boolean : public ls::std::core::Class, public ls::std::boxing::IBoxing
+      class Boolean : public ls::std::core::Class, public ls::std::core::IBoxing
       {
         public:
 

+ 3 - 3
include/ls_std/boxing/Double.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-14
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -12,7 +12,7 @@
 
 #include <memory>
 #include <ls_std/core/Class.hpp>
-#include "IBoxing.hpp"
+#include "ls_std/core/interface/IBoxing.hpp"
 
 namespace ls
 {
@@ -20,7 +20,7 @@ namespace ls
   {
     namespace boxing
     {
-      class Double : public ls::std::core::Class, public ls::std::boxing::IBoxing
+      class Double : public ls::std::core::Class, public ls::std::core::IBoxing
       {
         public:
 

+ 3 - 3
include/ls_std/boxing/Float.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-14
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -12,7 +12,7 @@
 
 #include <memory>
 #include <ls_std/core/Class.hpp>
-#include "IBoxing.hpp"
+#include "ls_std/core/interface/IBoxing.hpp"
 
 namespace ls
 {
@@ -20,7 +20,7 @@ namespace ls
   {
     namespace boxing
     {
-      class Float : public ls::std::core::Class, public ls::std::boxing::IBoxing
+      class Float : public ls::std::core::Class, public ls::std::core::IBoxing
       {
         public:
 

+ 5 - 5
include/ls_std/boxing/Integer.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-07
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -12,9 +12,9 @@
 
 #include <memory>
 #include <ls_std/core/Class.hpp>
-#include "IBoxing.hpp"
-#include <ls_std/serialization/ISerializable.hpp>
-#include <ls_std/io/IStorable.hpp>
+#include "ls_std/core/interface/IBoxing.hpp"
+#include <ls_std/core/interface/ISerializable.hpp>
+#include "ls_std/core/interface/IStorable.hpp"
 
 namespace ls
 {
@@ -22,7 +22,7 @@ namespace ls
   {
     namespace boxing
     {
-      class Integer : public ls::std::core::Class, public ls::std::boxing::IBoxing
+      class Integer : public ls::std::core::Class, public ls::std::core::IBoxing
       {
         public:
 

+ 5 - 5
include/ls_std/boxing/Long.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -12,10 +12,10 @@
 
 #include <memory>
 #include <ls_std/core/Class.hpp>
-#include "IBoxing.hpp"
+#include "ls_std/core/interface/IBoxing.hpp"
 #include <ls_std/core/Types.hpp>
-#include <ls_std/serialization/ISerializable.hpp>
-#include <ls_std/io/IStorable.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
+#include "ls_std/core/interface/IStorable.hpp"
 
 namespace ls
 {
@@ -23,7 +23,7 @@ namespace ls
   {
     namespace boxing
     {
-      class Long : public ls::std::core::Class, public ls::std::boxing::IBoxing
+      class Long : public ls::std::core::Class, public ls::std::core::IBoxing
       {
         public:
 

+ 3 - 3
include/ls_std/boxing/String.hpp

@@ -3,14 +3,14 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-14
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
 #ifndef LS_STD_STRING_HPP
 #define LS_STD_STRING_HPP
 
-#include "IBoxing.hpp"
+#include "ls_std/core/interface/IBoxing.hpp"
 #include <ls_std/core/Class.hpp>
 #include <ls_std/core/Types.hpp>
 #include <string>
@@ -23,7 +23,7 @@ namespace ls
   {
     namespace boxing
     {
-      class String : public ls::std::core::Class, public ls::std::boxing::IBoxing
+      class String : public ls::std::core::Class, public ls::std::core::IBoxing
       {
         public:
 

+ 3 - 3
include/ls_std/core/Version.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-09-27
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -11,7 +11,7 @@
 #define LS_STD_VERSION_HPP
 
 #include "Class.hpp"
-#include <ls_std/serialization/ISerializable.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
 #include "Types.hpp"
 
 namespace ls
@@ -20,7 +20,7 @@ namespace ls
   {
     namespace core
     {
-      class Version : public ls::ISerializable
+      class Version : public ls::std::core::ISerializable
       {
         public:
 

+ 2 - 2
include/ls_std/boxing/IBoxing.hpp → include/ls_std/core/interface/IBoxing.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-07
- * Changed:         2022-05-06
+ * Changed:         2022-05-11
  *
  * */
 
@@ -16,7 +16,7 @@ namespace ls
 {
   namespace std
   {
-    namespace boxing
+    namespace core
     {
       class IBoxing
       {

+ 5 - 5
include/ls_std/event/IEventSubscriber.hpp → include/ls_std/core/interface/IEventSubscriber.hpp

@@ -10,15 +10,15 @@
 #ifndef LS_STD_I_EVENT_SUBSCRIBER_HPP
 #define LS_STD_I_EVENT_SUBSCRIBER_HPP
 
-#include "EventTypes.hpp"
+#include "ls_std/event/EventTypes.hpp"
 #include <memory>
-#include <ls_std/logic/IListener.hpp>
+#include "IListener.hpp"
 
 namespace ls
 {
   namespace std
   {
-    namespace event
+    namespace core
     {
       class IEventSubscriber
       {
@@ -27,8 +27,8 @@ namespace ls
           IEventSubscriber() = default;
           ~IEventSubscriber() = default;
 
-          virtual void subscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::logic::IListener> &_listener) = 0;
-          virtual void unsubscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::logic::IListener> &_listener) = 0;
+          virtual void subscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::core::IListener> &_listener) = 0;
+          virtual void unsubscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::core::IListener> &_listener) = 0;
       };
     }
   }

+ 3 - 1
include/ls_std/core/factory/IFactory.hpp → include/ls_std/core/interface/IFactory.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2021-04-23
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -13,6 +13,8 @@
 #include <memory>
 #include "ls_std/core/Class.hpp"
 
+// TODO: is this really necessary to have?
+
 namespace ls
 {
   namespace std

+ 2 - 2
include/ls_std/logic/IListener.hpp → include/ls_std/core/interface/IListener.hpp

@@ -10,13 +10,13 @@
 #ifndef LS_STD_I_LISTENER_HPP
 #define LS_STD_I_LISTENER_HPP
 
-#include <ls_std/core/Class.hpp>
+#include "ls_std/core/Class.hpp"
 
 namespace ls
 {
   namespace std
   {
-    namespace logic
+    namespace core
     {
       class IListener
       {

+ 2 - 2
include/ls_std/io/IReader.hpp → include/ls_std/core/interface/IReader.hpp

@@ -10,13 +10,13 @@
 #ifndef LS_STD_I_READER_HPP
 #define LS_STD_I_READER_HPP
 
-#include <ls_std/core/Types.hpp>
+#include "ls_std/core/Types.hpp"
 
 namespace ls
 {
   namespace std
   {
-    namespace io
+    namespace core
     {
       class IReader
       {

+ 35 - 0
include/ls_std/core/interface/ISerializable.hpp

@@ -0,0 +1,35 @@
+/*
+ * Author:          Patrick-Christopher Mattulat
+ * Company:         Lynar Studios
+ * E-Mail:          webmaster@lynarstudios.com
+ * Created:         2020-08-21
+ * Changed:         2022-05-11
+ *
+ * */
+
+#ifndef LS_STD_SERIALIZABLE_HPP
+#define LS_STD_SERIALIZABLE_HPP
+
+#include <ls_std/core/Types.hpp>
+
+namespace ls
+{
+  namespace std
+  {
+    namespace core
+    {
+      class ISerializable
+      {
+        public:
+
+          ISerializable() = default;
+          ~ISerializable() = default;
+
+          virtual ls::std::core::byte_field marshal() = 0;
+          virtual void unmarshal(const ls::std::core::byte_field &_data) = 0;
+      };
+    }
+  }
+}
+
+#endif

+ 2 - 2
include/ls_std/io/IStorable.hpp → include/ls_std/core/interface/IStorable.hpp

@@ -10,13 +10,13 @@
 #ifndef LS_STD_I_STORABLE_HPP
 #define LS_STD_I_STORABLE_HPP
 
-#include <ls_std/core/Types.hpp>
+#include "ls_std/core/Types.hpp"
 
 namespace ls
 {
   namespace std
   {
-    namespace io
+    namespace core
     {
       class IStorable
       {

+ 2 - 2
include/ls_std/io/IWriter.hpp → include/ls_std/core/interface/IWriter.hpp

@@ -11,13 +11,13 @@
 #define LS_STD_I_WRITER_HPP
 
 #include <vector>
-#include <ls_std/core/Types.hpp>
+#include "ls_std/core/Types.hpp"
 
 namespace ls
 {
   namespace std
   {
-    namespace io
+    namespace core
     {
       class IWriter
       {

+ 2 - 2
include/ls_std/event/Event.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-26
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
@@ -11,7 +11,7 @@
 #define LS_STD_EVENT_HPP
 
 #include <ls_std/core/Class.hpp>
-#include <ls_std/serialization/ISerializable.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
 #include <memory>
 #include "EventTypes.hpp"
 

+ 1 - 1
include/ls_std/event/EventHandler.hpp

@@ -13,7 +13,7 @@
 #include <ls_std/core/Class.hpp>
 #include <list>
 #include <memory>
-#include <ls_std/logic/IListener.hpp>
+#include "ls_std/core/interface/IListener.hpp"
 #include "Event.hpp"
 #include <ls_std/logic/Narrator.hpp>
 

+ 4 - 4
include/ls_std/event/EventManager.hpp

@@ -15,7 +15,7 @@
 #include <ls_std/event/EventTypes.hpp>
 #include <memory>
 #include "EventHandler.hpp"
-#include "IEventSubscriber.hpp"
+#include "ls_std/core/interface/IEventSubscriber.hpp"
 
 namespace ls
 {
@@ -23,7 +23,7 @@ namespace ls
   {
     namespace event
     {
-      class EventManager : public ls::std::core::Class, public ls::std::event::IEventSubscriber
+      class EventManager : public ls::std::core::Class, public ls::std::core::IEventSubscriber
       {
         public:
 
@@ -32,8 +32,8 @@ namespace ls
 
           // implementation
 
-          void subscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::logic::IListener> &_listener) override;
-          void unsubscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::logic::IListener> &_listener) override;
+          void subscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::core::IListener> &_listener) override;
+          void unsubscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::core::IListener> &_listener) override;
 
           // additional functionality
 

+ 6 - 6
include/ls_std/event/serialization/SerializableJsonEvent.hpp

@@ -3,18 +3,18 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-12-07
- * Changed:         2022-05-09
+ * Changed:         2022-05-11
  *
  * */
 
 #ifndef LS_STD_SERIALIZABLE_JSON_EVENT_HPP
 #define LS_STD_SERIALIZABLE_JSON_EVENT_HPP
 
-#include "ls_std/serialization/ISerializable.hpp"
-#include "ls_std/core/Class.hpp"
-#include "ls_std/event/Event.hpp"
+#include <ls_std/core/interface/ISerializable.hpp>
+#include <ls_std/core/Class.hpp>
+#include <ls_std/event/Event.hpp>
 #include <memory>
-#include "ls_std/lib/nlohmann_json/include/nlohmann/json.hpp"
+#include <ls_std/lib/nlohmann_json/include/nlohmann/json.hpp>
 
 namespace ls
 {
@@ -22,7 +22,7 @@ namespace ls
   {
     namespace event
     {
-      class SerializableJsonEvent : public ls::std::core::Class, public ls::ISerializable
+      class SerializableJsonEvent : public ls::std::core::Class, public ls::std::core::ISerializable
       {
         public:
 

+ 2 - 2
include/ls_std/io/FileOutputStream.hpp

@@ -12,7 +12,7 @@
 
 #include <ls_std/core/Class.hpp>
 #include "File.hpp"
-#include "IWriter.hpp"
+#include "ls_std/core/interface/IWriter.hpp"
 #include <fstream>
 
 namespace ls
@@ -21,7 +21,7 @@ namespace ls
   {
     namespace io
     {
-      class FileOutputStream : public ls::std::core::Class, public ls::std::io::IWriter
+      class FileOutputStream : public ls::std::core::Class, public ls::std::core::IWriter
       {
         public:
 

+ 2 - 2
include/ls_std/io/FileReader.hpp

@@ -12,7 +12,7 @@
 
 #include <ls_std/core/Class.hpp>
 #include "File.hpp"
-#include "IReader.hpp"
+#include "ls_std/core/interface/IReader.hpp"
 
 namespace ls
 {
@@ -20,7 +20,7 @@ namespace ls
   {
     namespace io
     {
-      class FileReader : public ls::std::core::Class, public ls::std::io::IReader
+      class FileReader : public ls::std::core::Class, public ls::std::core::IReader
       {
         public:
 

+ 2 - 2
include/ls_std/io/FileWriter.hpp

@@ -11,7 +11,7 @@
 #define LS_STD_FILE_WRITER_HPP
 
 #include <ls_std/core/Class.hpp>
-#include "IWriter.hpp"
+#include "ls_std/core/interface/IWriter.hpp"
 #include "File.hpp"
 
 namespace ls
@@ -20,7 +20,7 @@ namespace ls
   {
     namespace io
     {
-      class FileWriter : public ls::std::core::Class, public ls::std::io::IWriter
+      class FileWriter : public ls::std::core::Class, public ls::std::core::IWriter
       {
         public:
 

+ 2 - 2
include/ls_std/io/StandardOutputWriter.hpp

@@ -10,7 +10,7 @@
 #ifndef LS_STD_STANDARD_OUTPUT_WRITER_HPP
 #define LS_STD_STANDARD_OUTPUT_WRITER_HPP
 
-#include "IWriter.hpp"
+#include "ls_std/core/interface/IWriter.hpp"
 
 namespace ls
 {
@@ -18,7 +18,7 @@ namespace ls
   {
     namespace io
     {
-      class StandardOutputWriter : public ls::std::io::IWriter
+      class StandardOutputWriter : public ls::std::core::IWriter
       {
         public:
 

+ 2 - 2
include/ls_std/io/StorableFile.hpp

@@ -12,7 +12,7 @@
 
 #include <string>
 #include <memory>
-#include "IStorable.hpp"
+#include "ls_std/core/interface/IStorable.hpp"
 #include "File.hpp"
 
 namespace ls
@@ -21,7 +21,7 @@ namespace ls
   {
     namespace io
     {
-      class StorableFile : public ls::std::io::IStorable
+      class StorableFile : public ls::std::core::IStorable
       {
         public:
 

+ 2 - 2
include/ls_std/io/kv/KvFileReader.hpp

@@ -11,7 +11,7 @@
 #define LS_STD_KV_FILE_READER_HPP
 
 #include <ls_std/core/Class.hpp>
-#include <ls_std/io/IReader.hpp>
+#include "ls_std/core/interface/IReader.hpp"
 #include <ls_std/io/kv/KvDocument.hpp>
 #include <ls_std/io/File.hpp>
 #include <memory>
@@ -22,7 +22,7 @@ namespace ls
   {
     namespace io
     {
-      class KvFileReader : public ls::std::core::Class, public ls::std::io::IReader
+      class KvFileReader : public ls::std::core::Class, public ls::std::core::IReader
       {
         public:
 

+ 4 - 4
include/ls_std/io/logging/Logger.hpp

@@ -12,7 +12,7 @@
 
 #include <ls_std/core/Class.hpp>
 #include "LogLevel.hpp"
-#include <ls_std/io/IWriter.hpp>
+#include "ls_std/core/interface/IWriter.hpp"
 #include <ls_std/io/File.hpp>
 #include <ls_std/io/FileOutputStream.hpp>
 #include <string>
@@ -27,7 +27,7 @@ namespace ls
       {
         public:
 
-          explicit Logger(const ::std::shared_ptr<ls::std::io::IWriter> &_writer);
+          explicit Logger(const ::std::shared_ptr<ls::std::core::IWriter> &_writer);
           ~Logger() override = default;
 
           void debug(const ls::std::core::byte *_data);
@@ -42,9 +42,9 @@ namespace ls
         private:
 
           ls::std::io::LogLevel logLevel{};
-          ::std::shared_ptr<ls::std::io::IWriter> writer{};
+          ::std::shared_ptr<ls::std::core::IWriter> writer{};
 
-          void _assignWriter(const ::std::shared_ptr<ls::std::io::IWriter> &_writer);
+          void _assignWriter(const ::std::shared_ptr<ls::std::core::IWriter> &_writer);
           void _log(const ls::std::core::byte *_data, const ls::std::io::LogLevel &_logLevel);
       };
     }

+ 2 - 2
include/ls_std/io/xml/XmlReader.hpp

@@ -12,7 +12,7 @@
 
 #include <ls_std/core/Class.hpp>
 #include "XmlDocument.hpp"
-#include <ls_std/io/IReader.hpp>
+#include "ls_std/core/interface/IReader.hpp"
 #include <ls_std/io/File.hpp>
 #include "XmlParseMode.hpp"
 #include "XmlParseParameter.hpp"
@@ -24,7 +24,7 @@ namespace ls
   {
     namespace io
     {
-      class XmlReader : public ls::std::core::Class, public ls::std::io::IReader
+      class XmlReader : public ls::std::core::Class, public ls::std::core::IReader
       {
         public:
 

+ 5 - 5
include/ls_std/logic/Narrator.hpp

@@ -11,7 +11,7 @@
 #define LS_STD_NARRATOR_HPP
 
 #include <ls_std/core/Class.hpp>
-#include "IListener.hpp"
+#include "ls_std/core/interface/IListener.hpp"
 #include <list>
 #include <memory>
 
@@ -28,15 +28,15 @@ namespace ls
           Narrator();
           ~Narrator() override = default;
 
-          bool addListener(const ::std::shared_ptr<ls::std::logic::IListener> &_listener);
+          bool addListener(const ::std::shared_ptr<ls::std::core::IListener> &_listener);
           void clear();
-          ::std::list<::std::shared_ptr<ls::std::logic::IListener>> getListeners();
-          bool removeListener(const ::std::shared_ptr<ls::std::logic::IListener> &_listener);
+          ::std::list<::std::shared_ptr<ls::std::core::IListener>> getListeners();
+          bool removeListener(const ::std::shared_ptr<ls::std::core::IListener> &_listener);
           void tell(const ls::std::core::Class &_info);
 
         private:
 
-          ::std::list<::std::shared_ptr<ls::std::logic::IListener>> listeners{};
+          ::std::list<::std::shared_ptr<ls::std::core::IListener>> listeners{};
       };
     }
   }

+ 1 - 1
include/ls_std/logic/State.hpp

@@ -15,7 +15,7 @@
 #include <ls_std/core/Class.hpp>
 #include "StateMachineTypes.hpp"
 #include "StateConnection.hpp"
-#include <ls_std/serialization/ISerializable.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
 
 namespace ls
 {

+ 5 - 5
include/ls_std/logic/serialization/SerializableJsonState.hpp

@@ -11,10 +11,10 @@
 #define LS_STD_SERIALIZABLE_JSON_STATE_HPP
 
 #include <memory>
-#include "ls_std/lib/nlohmann_json/include/nlohmann/json.hpp"
-#include "ls_std/logic/State.hpp"
-#include "ls_std/serialization/ISerializable.hpp"
-#include "ls_std/core/Class.hpp"
+#include <ls_std/lib/nlohmann_json/include/nlohmann/json.hpp>
+#include <ls_std/logic/State.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
+#include <ls_std/core/Class.hpp>
 
 namespace ls
 {
@@ -22,7 +22,7 @@ namespace ls
   {
     namespace logic
     {
-      class SerializableJsonState : public ls::std::core::Class, public ls::ISerializable
+      class SerializableJsonState : public ls::std::core::Class, public ls::std::core::ISerializable
       {
         public:
 

+ 5 - 5
include/ls_std/logic/serialization/SerializableJsonStateConnection.hpp

@@ -11,10 +11,10 @@
 #define LS_STD_SERIALIZABLE_JSON_STATE_CONNECTION_HPP
 
 #include <memory>
-#include "ls_std/lib/nlohmann_json/include/nlohmann/json.hpp"
-#include "ls_std/core/Class.hpp"
-#include "ls_std/serialization/ISerializable.hpp"
-#include "ls_std/logic/StateConnection.hpp"
+#include <ls_std/lib/nlohmann_json/include/nlohmann/json.hpp>
+#include <ls_std/core/Class.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
+#include <ls_std/logic/StateConnection.hpp>
 
 namespace ls
 {
@@ -22,7 +22,7 @@ namespace ls
   {
     namespace logic
     {
-      class SerializableJsonStateConnection : public ls::std::core::Class, public ls::ISerializable
+      class SerializableJsonStateConnection : public ls::std::core::Class, public ls::std::core::ISerializable
       {
         public:
 

+ 4 - 4
include/ls_std/logic/serialization/SerializableJsonStateMachine.hpp

@@ -10,9 +10,9 @@
 #ifndef LS_STD_SERIALIZABLE_JSON_STATE_MACHINE_HPP
 #define LS_STD_SERIALIZABLE_JSON_STATE_MACHINE_HPP
 
-#include "ls_std/core/Class.hpp"
-#include "ls_std/serialization/ISerializable.hpp"
-#include "ls_std/logic/StateMachine.hpp"
+#include <ls_std/core/Class.hpp>
+#include <ls_std/core/interface/ISerializable.hpp>
+#include <ls_std/logic/StateMachine.hpp>
 #include <memory>
 #include "ls_std/lib/nlohmann_json/include/nlohmann/json.hpp"
 
@@ -22,7 +22,7 @@ namespace ls
   {
     namespace logic
     {
-      class SerializableJsonStateMachine : public ls::std::core::Class, public ls::ISerializable
+      class SerializableJsonStateMachine : public ls::std::core::Class, public ls::std::core::ISerializable
       {
         public:
 

+ 9 - 10
include/ls_std/ls_std.hpp

@@ -3,14 +3,13 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-10-29
- * Changed:         2022-05-05
+ * Changed:         2022-05-11
  *
  * */
 
 #ifndef LS_STD_LS_STD_HPP
 #define LS_STD_LS_STD_HPP
 
-#include "boxing/IBoxing.hpp"
 #include "boxing/Boolean.hpp"
 #include "boxing/Double.hpp"
 #include "boxing/Float.hpp"
@@ -26,7 +25,14 @@
 #include "core/exception/IllegalArithmeticOperationException.hpp"
 #include "core/exception/IncompleteJsonException.hpp"
 #include "core/exception/NullPointerException.hpp"
-#include "core/factory/IFactory.hpp"
+#include "core/interface/IBoxing.hpp"
+#include "core/interface/IEventSubscriber.hpp"
+#include "core/interface/IFactory.hpp"
+#include "core/interface/IListener.hpp"
+#include "core/interface/IReader.hpp"
+#include "core/interface/ISerializable.hpp"
+#include "core/interface/IStorable.hpp"
+#include "core/interface/IWriter.hpp"
 #include "core/utils/RegexUtils.hpp"
 #include "core/utils/STLUtils.hpp"
 #if _WIN32
@@ -42,7 +48,6 @@
 #include "event/EventHandler.hpp"
 #include "event/EventManager.hpp"
 #include "event/EventTypes.hpp"
-#include "event/IEventSubscriber.hpp"
 
 #include "io/kv/KvDocument.hpp"
 #include "io/kv/KvFileReader.hpp"
@@ -67,9 +72,6 @@
 #include "io/FilePathSeparatorMatch.hpp"
 #include "io/FileReader.hpp"
 #include "io/FileWriter.hpp"
-#include "io/IReader.hpp"
-#include "io/IStorable.hpp"
-#include "io/IWriter.hpp"
 #include "io/NewLine.hpp"
 #include "io/StandardOutputWriter.hpp"
 #include "io/StorableFile.hpp"
@@ -77,15 +79,12 @@
 #include "logic/serialization/SerializableJsonState.hpp"
 #include "logic/serialization/SerializableJsonStateConnection.hpp"
 #include "logic/serialization/SerializableJsonStateMachine.hpp"
-#include "logic/IListener.hpp"
 #include "logic/Narrator.hpp"
 #include "logic/State.hpp"
 #include "logic/StateConnection.hpp"
 #include "logic/StateMachine.hpp"
 #include "logic/StateMachineTypes.hpp"
 
-#include "serialization/ISerializable.hpp"
-
 #include "time/Date.hpp"
 
 #endif

+ 0 - 29
include/ls_std/serialization/ISerializable.hpp

@@ -1,29 +0,0 @@
-/*
- * Author:          Patrick-Christopher Mattulat
- * Company:         Lynar Studios
- * E-Mail:          webmaster@lynarstudios.com
- * Created:         2020-08-21
- * Changed:         2022-05-09
- *
- * */
-
-#ifndef LS_STD_SERIALIZABLE_HPP
-#define LS_STD_SERIALIZABLE_HPP
-
-#include <ls_std/core/Types.hpp>
-
-namespace ls
-{
-  class ISerializable
-  {
-    public:
-
-      ISerializable() = default;
-      ~ISerializable() = default;
-
-      virtual ls::std::core::byte_field marshal() = 0;
-      virtual void unmarshal(const ls::std::core::byte_field &_data) = 0;
-  };
-}
-
-#endif

+ 2 - 2
source/ls_std/event/EventManager.cpp

@@ -15,7 +15,7 @@
 ls::std::event::EventManager::EventManager() : ls::std::core::Class("EventManager")
 {}
 
-void ls::std::event::EventManager::subscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::logic::IListener> &_listener)
+void ls::std::event::EventManager::subscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::core::IListener> &_listener)
 {
   if (_id.empty() || _listener == nullptr)
   {
@@ -32,7 +32,7 @@ void ls::std::event::EventManager::subscribe(const ls::std::event::event_id &_id
   }
 }
 
-void ls::std::event::EventManager::unsubscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::logic::IListener> &_listener)
+void ls::std::event::EventManager::unsubscribe(const ls::std::event::event_id &_id, const ::std::shared_ptr<ls::std::core::IListener> &_listener)
 {
   if (_id.empty() || _listener == nullptr)
   {

+ 2 - 2
source/ls_std/io/logging/Logger.cpp

@@ -13,7 +13,7 @@
 #include <ls_std/boxing/String.hpp>
 #include <ls_std/core/exception/IllegalArgumentException.hpp>
 
-ls::std::io::Logger::Logger(const ::std::shared_ptr<ls::std::io::IWriter> &_writer)
+ls::std::io::Logger::Logger(const ::std::shared_ptr<ls::std::core::IWriter> &_writer)
     : ls::std::core::Class("Logger"),
       logLevel(ls::std::io::LogLevelValue::INFO)
 {
@@ -78,7 +78,7 @@ void ls::std::io::Logger::warn(const ls::std::core::byte *_data)
   }
 }
 
-void ls::std::io::Logger::_assignWriter(const ::std::shared_ptr<ls::std::io::IWriter> &_writer)
+void ls::std::io::Logger::_assignWriter(const ::std::shared_ptr<ls::std::core::IWriter> &_writer)
 {
   if (_writer == nullptr)
   {

+ 3 - 3
source/ls_std/logic/Narrator.cpp

@@ -14,7 +14,7 @@
 ls::std::logic::Narrator::Narrator() : ls::std::core::Class("Narrator")
 {}
 
-bool ls::std::logic::Narrator::addListener(const ::std::shared_ptr<ls::std::logic::IListener> &_listener)
+bool ls::std::logic::Narrator::addListener(const ::std::shared_ptr<ls::std::core::IListener> &_listener)
 {
   bool wasAdded{};
 
@@ -39,12 +39,12 @@ void ls::std::logic::Narrator::clear()
   this->listeners.clear();
 }
 
-std::list<std::shared_ptr<ls::std::logic::IListener>> ls::std::logic::Narrator::getListeners()
+std::list<std::shared_ptr<ls::std::core::IListener>> ls::std::logic::Narrator::getListeners()
 {
   return this->listeners;
 }
 
-bool ls::std::logic::Narrator::removeListener(const ::std::shared_ptr<ls::std::logic::IListener> &_listener)
+bool ls::std::logic::Narrator::removeListener(const ::std::shared_ptr<ls::std::core::IListener> &_listener)
 {
   bool wasRemoved{};
 

+ 8 - 8
test/cases/io/logging/LoggerTest.cpp

@@ -26,7 +26,7 @@ namespace
       void TearDown() override
       {}
 
-      static std::shared_ptr<ls::std::io::IWriter> createFileLogger(const std::string &_logName)
+      static std::shared_ptr<ls::std::core::IWriter> createFileLogger(const std::string &_logName)
       {
         std::string path = TestHelper::getResourcesFolderLocation() + _logName;
         ls::std::io::File file{path};
@@ -36,7 +36,7 @@ namespace
           file.createNewFile();
         }
 
-        std::shared_ptr<ls::std::io::IWriter> writer = std::dynamic_pointer_cast<ls::std::io::IWriter>(std::make_shared<ls::std::io::FileOutputStream>(file));
+        std::shared_ptr<ls::std::core::IWriter> writer = std::dynamic_pointer_cast<ls::std::core::IWriter>(std::make_shared<ls::std::io::FileOutputStream>(file));
 
         return writer;
       }
@@ -71,7 +71,7 @@ namespace
     // write to log file
 
     std::string logName = "output_debug.log";
-    std::shared_ptr<ls::std::io::IWriter> writer = createFileLogger(logName);
+    std::shared_ptr<ls::std::core::IWriter> writer = createFileLogger(logName);
 
     ls::std::io::Logger logger{writer};
     logger.setLogLevel(ls::std::io::LogLevelValue::DEBUG);
@@ -100,7 +100,7 @@ namespace
     // write to log file
 
     std::string logName = "output_error.log";
-    std::shared_ptr<ls::std::io::IWriter> writer = createFileLogger(logName);
+    std::shared_ptr<ls::std::core::IWriter> writer = createFileLogger(logName);
 
     ls::std::io::Logger logger{writer};
     logger.setLogLevel(ls::std::io::LogLevelValue::ERR);
@@ -129,7 +129,7 @@ namespace
     // write to log file
 
     std::string logName = "output_fatal.log";
-    std::shared_ptr<ls::std::io::IWriter> writer = createFileLogger(logName);
+    std::shared_ptr<ls::std::core::IWriter> writer = createFileLogger(logName);
 
     ls::std::io::Logger logger{writer};
     logger.setLogLevel(ls::std::io::LogLevelValue::FATAL);
@@ -164,7 +164,7 @@ namespace
     // write to log file
 
     std::string logName = "output_info.log";
-    std::shared_ptr<ls::std::io::IWriter> writer = createFileLogger(logName);
+    std::shared_ptr<ls::std::core::IWriter> writer = createFileLogger(logName);
 
     ls::std::io::Logger logger{writer};
     logger.setLogLevel(ls::std::io::LogLevelValue::INFO);
@@ -201,7 +201,7 @@ namespace
     // write to log file
 
     std::string logName = "output_trace.log";
-    std::shared_ptr<ls::std::io::IWriter> writer = createFileLogger(logName);
+    std::shared_ptr<ls::std::core::IWriter> writer = createFileLogger(logName);
 
     ls::std::io::Logger logger{writer};
     logger.setLogLevel(ls::std::io::LogLevelValue::TRACE);
@@ -230,7 +230,7 @@ namespace
     // write to log file
 
     std::string logName = "output_warn.log";
-    std::shared_ptr<ls::std::io::IWriter> writer = createFileLogger(logName);
+    std::shared_ptr<ls::std::core::IWriter> writer = createFileLogger(logName);
 
     ls::std::io::Logger logger{writer};
     logger.setLogLevel(ls::std::io::LogLevelValue::WARN);

+ 14 - 14
test/cases/logic/NarratorTest.cpp

@@ -46,9 +46,9 @@ namespace
     this->createCars();
     ls::std::logic::Narrator paintingMachine{};
 
-    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes1)));
-    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes2)));
-    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes3)));
+    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes1)));
+    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes2)));
+    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes3)));
   }
 
   TEST_F(NarratorTest, addListener_listener_already_exists)
@@ -56,8 +56,8 @@ namespace
     this->createCars();
     ls::std::logic::Narrator paintingMachine{};
 
-    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes1)));
-    ASSERT_FALSE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes1)));
+    ASSERT_TRUE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes1)));
+    ASSERT_FALSE(paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes1)));
   }
 
   TEST_F(NarratorTest, addListener_no_reference)
@@ -79,9 +79,9 @@ namespace
   {
     this->createCars();
     ls::std::logic::Narrator paintingMachine{};
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes1));
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes2));
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes3));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes1));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes2));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes3));
 
     ASSERT_FALSE(paintingMachine.getListeners().empty());
     paintingMachine.clear();
@@ -98,9 +98,9 @@ namespace
   {
     this->createCars();
     ls::std::logic::Narrator paintingMachine{};
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes1));
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes2));
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes3));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes1));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes2));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes3));
 
     ASSERT_TRUE(paintingMachine.removeListener(this->mercedes2));
     ASSERT_TRUE(paintingMachine.removeListener(this->mercedes1));
@@ -134,9 +134,9 @@ namespace
   {
     this->createCars();
     ls::std::logic::Narrator paintingMachine{};
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes1));
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes2));
-    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::logic::IListener>(this->mercedes3));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes1));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes2));
+    paintingMachine.addListener(std::dynamic_pointer_cast<ls::std::core::IListener>(this->mercedes3));
 
     ASSERT_STREQ("pink", this->mercedes1->getColor().c_str());
     ASSERT_STREQ("blue", this->mercedes2->getColor().c_str());

+ 1 - 1
test/classes/event/DailyNewsAgency.hpp

@@ -18,7 +18,7 @@
 
 namespace ls_std_test
 {
-  class DailyNewsAgency : public ls_std_test::NewsAgency, public ls::std::logic::IListener
+  class DailyNewsAgency : public ls_std_test::NewsAgency, public ls::std::core::IListener
   {
     public:
 

+ 1 - 1
test/classes/event/GossipNewsAgency.hpp

@@ -18,7 +18,7 @@
 
 namespace ls_std_test
 {
-  class GossipNewsAgency : public ls_std_test::NewsAgency, public ls::std::logic::IListener
+  class GossipNewsAgency : public ls_std_test::NewsAgency, public ls::std::core::IListener
   {
     public:
 

+ 2 - 2
test/classes/observer/TestDataMercedesCar.hpp

@@ -11,12 +11,12 @@
 #define LS_STD_TEST_DATA_MERCEDES_CAR_HPP
 
 #include "TestDataCar.hpp"
-#include <ls_std/logic/IListener.hpp>
+#include "ls_std/core/interface/IListener.hpp"
 #include <ls_std/core/Class.hpp>
 
 namespace ls_std_test
 {
-  class TestDataMercedesCar : public TestDataCar, public ls::std::logic::IListener
+  class TestDataMercedesCar : public TestDataCar, public ls::std::core::IListener
   {
     public: