Browse Source

Make destructor of interface classes virtual

Patrick-Christopher Mattulat 2 years ago
parent
commit
cdb311f46f

+ 2 - 2
include/ls-std/core/Version.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-09-27
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -22,7 +22,7 @@ namespace ls::std::core
     public:
 
       explicit Version(ls::std::core::type::version_type _majorVersion, ls::std::core::type::version_type _minorVersion, ls::std::core::type::version_type _patchVersion);
-      ~Version();
+      ~Version() override;
 
       // implementation
 

+ 2 - 2
include/ls-std/core/interface/IBoxing.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-07
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls::std::core::interface_type
     public:
 
       IBoxing();
-      ~IBoxing();
+      virtual ~IBoxing();
 
       virtual void parse(::std::string _parseText) = 0;
       virtual ::std::string toString() = 0;

+ 2 - 2
include/ls-std/core/interface/IEncoding.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-01-03
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls::std::core::interface_type
     public:
 
       IEncoding();
-      ~IEncoding();
+      virtual ~IEncoding();
 
       virtual ::std::string encode(const ::std::string &_sequence) = 0;
       virtual ::std::string decode(const ::std::string &_sequence) = 0;

+ 2 - 2
include/ls-std/core/interface/IEventSubscriber.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -21,7 +21,7 @@ namespace ls::std::core::interface_type
     public:
 
       IEventSubscriber();
-      ~IEventSubscriber();
+      virtual ~IEventSubscriber();
 
       virtual void subscribe(const ls::std::core::type::event_id &_id, const ::std::shared_ptr<ls::std::core::interface_type::IListener> &_listener) = 0;
       virtual void unsubscribe(const ls::std::core::type::event_id &_id, const ::std::shared_ptr<ls::std::core::interface_type::IListener> &_listener) = 0;

+ 2 - 2
include/ls-std/core/interface/IListener.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-14
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls::std::core::interface_type
     public:
 
       IListener();
-      ~IListener();
+      virtual ~IListener();
 
       virtual void listen(const ls::std::core::Class &_info) = 0;
   };

+ 2 - 2
include/ls-std/core/interface/IReader.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls::std::core::interface_type
     public:
 
       IReader();
-      ~IReader();
+      virtual ~IReader();
 
       virtual ls::std::core::type::byte_field read() = 0;
   };

+ 4 - 4
include/ls-std/core/interface/ISerializable.hpp

@@ -3,12 +3,12 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-21
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
-#ifndef LS_STD_SERIALIZABLE_HPP
-#define LS_STD_SERIALIZABLE_HPP
+#ifndef LS_STD_I_SERIALIZABLE_HPP
+#define LS_STD_I_SERIALIZABLE_HPP
 
 #include <ls-std/core/types/Types.hpp>
 
@@ -19,7 +19,7 @@ namespace ls::std::core::interface_type
     public:
 
       ISerializable();
-      ~ISerializable();
+      virtual ~ISerializable();
 
       virtual ls::std::core::type::byte_field marshal() = 0;
       virtual void unmarshal(const ls::std::core::type::byte_field &_data) = 0;

+ 2 - 2
include/ls-std/core/interface/IStorable.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-19
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls::std::core::interface_type
     public:
 
       IStorable();
-      ~IStorable();
+      virtual ~IStorable();
 
       virtual ls::std::core::type::byte_field load() = 0;
       virtual void save(const ls::std::core::type::byte_field &_data) = 0;

+ 2 - 2
include/ls-std/core/interface/IWriter.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-17
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -20,7 +20,7 @@ namespace ls::std::core::interface_type
     public:
 
       IWriter();
-      ~IWriter();
+      virtual ~IWriter();
 
       virtual bool write(const ls::std::core::type::byte_field &_data) = 0;
   };

+ 2 - 2
include/ls-std/encoding/Base64.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2022-01-03
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -23,7 +23,7 @@ namespace ls::std::encoding
     public:
 
       Base64();
-      ~Base64();
+      ~Base64() override;
 
       // implementation
 

+ 2 - 2
include/ls-std/io/StandardOutputWriter.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-06
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -20,7 +20,7 @@ namespace ls::std::io
     public:
 
       StandardOutputWriter();
-      ~StandardOutputWriter();
+      ~StandardOutputWriter() override;
 
       bool write(const ls::std::core::type::byte_field &_data) override;
   };

+ 2 - 2
include/ls-std/io/StorableFile.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-08-19
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -23,7 +23,7 @@ namespace ls::std::io
     public:
 
       explicit StorableFile(const ::std::string &_path);
-      ~StorableFile();
+      ~StorableFile() override;
 
       ::std::shared_ptr<ls::std::io::File> getFile();
       ls::std::core::type::byte_field load() override;

+ 5 - 1
test/classes/event/DailyNewsAgency.cpp

@@ -3,16 +3,20 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2023-02-03
+ * Changed:         2023-02-05
  *
  * */
 
 #include "DailyNewsAgency.hpp"
 #include <ls-std/ls-std-event.hpp>
 
+// TODO: rename namespace
+
 ls_std_event_test::DailyNewsAgency::DailyNewsAgency() : ls_std_event_test::NewsAgency("DailyNewsAgency")
 {}
 
+ls_std_event_test::DailyNewsAgency::~DailyNewsAgency() = default;
+
 void ls_std_event_test::DailyNewsAgency::listen(const ls::std::core::Class &_info)
 {
   ls::std::event::Event event = dynamic_cast<const ls::std::event::Event &>(_info);

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

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2023-02-03
+ * Changed:         2023-02-05
  *
  * */
 
@@ -23,7 +23,7 @@ namespace ls_std_event_test
     public:
 
       DailyNewsAgency();
-      ~DailyNewsAgency() = default;
+      ~DailyNewsAgency() override;
 
       // implementation
 

+ 3 - 1
test/classes/event/GossipNewsAgency.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2023-02-03
+ * Changed:         2023-02-05
  *
  * */
 
@@ -13,6 +13,8 @@
 ls_std_event_test::GossipNewsAgency::GossipNewsAgency() : ls_std_event_test::NewsAgency("GossipNewsAgency")
 {}
 
+ls_std_event_test::GossipNewsAgency::~GossipNewsAgency() = default;
+
 void ls_std_event_test::GossipNewsAgency::listen(const ls::std::core::Class &_info)
 {
   ls::std::event::Event event = dynamic_cast<const ls::std::event::Event &>(_info);

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

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2023-02-03
+ * Changed:         2023-02-05
  *
  * */
 
@@ -23,7 +23,7 @@ namespace ls_std_event_test
     public:
 
       GossipNewsAgency();
-      ~GossipNewsAgency() = default;
+      ~GossipNewsAgency() override;
 
       // implementation
 

+ 3 - 1
test/classes/event/NewsAgency.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2022-05-20
+ * Changed:         2023-02-05
  *
  * */
 
@@ -12,6 +12,8 @@
 ls_std_event_test::NewsAgency::NewsAgency(::std::string _agencyName) : agencyName(::std::move(_agencyName))
 {}
 
+ls_std_event_test::NewsAgency::~NewsAgency() = default;
+
 ::std::string ls_std_event_test::NewsAgency::getName()
 {
   return this->agencyName;

+ 2 - 2
test/classes/event/NewsAgency.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-27
- * Changed:         2022-05-20
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls_std_event_test
     public:
 
       explicit NewsAgency(::std::string _agencyName);
-      ~NewsAgency() = default;
+      virtual ~NewsAgency();
 
       ::std::string getName();
 

+ 3 - 1
test/classes/event/TestDataCar.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-14
- * Changed:         2022-05-20
+ * Changed:         2023-02-05
  *
  * */
 
@@ -12,6 +12,8 @@
 ls_std_event_test::TestDataCar::TestDataCar() : color("white")
 {}
 
+ls_std_event_test::TestDataCar::~TestDataCar() = default;
+
 ::std::string ls_std_event_test::TestDataCar::getColor()
 {
   return this->color;

+ 2 - 2
test/classes/event/TestDataCar.hpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-14
- * Changed:         2022-05-20
+ * Changed:         2023-02-05
  *
  * */
 
@@ -19,7 +19,7 @@ namespace ls_std_event_test
     public:
 
       TestDataCar();
-      ~TestDataCar() = default;
+      virtual ~TestDataCar();
 
       ::std::string getColor();
       void setColor(::std::string _color);

+ 3 - 1
test/classes/event/TestDataMercedesCar.cpp

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-14
- * Changed:         2023-02-04
+ * Changed:         2023-02-05
  *
  * */
 
@@ -15,6 +15,8 @@ ls_std_event_test::TestDataMercedesCar::TestDataMercedesCar() : TestDataCar()
   this->setColor("blue");
 }
 
+ls_std_event_test::TestDataMercedesCar::~TestDataMercedesCar() = default;
+
 void ls_std_event_test::TestDataMercedesCar::listen(const ls::std::core::Class &_info)
 {
   this->setColor(dynamic_cast<const ls_std_event_test::Colour &>(_info).getValue());

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

@@ -3,7 +3,7 @@
  * Company:         Lynar Studios
  * E-Mail:          webmaster@lynarstudios.com
  * Created:         2020-11-14
- * Changed:         2023-02-03
+ * Changed:         2023-02-05
  *
  * */
 
@@ -20,7 +20,7 @@ namespace ls_std_event_test
     public:
 
       TestDataMercedesCar();
-      ~TestDataMercedesCar() = default;
+      ~TestDataMercedesCar() override;
 
       void listen(const ls::std::core::Class &_info) override;
   };