diff --git a/include/modbuspp/asciilayer.h b/include/modbuspp/asciilayer.h index c0393c1..c5094d8 100644 --- a/include/modbuspp/asciilayer.h +++ b/include/modbuspp/asciilayer.h @@ -46,6 +46,11 @@ namespace Modbus { */ AsciiLayer (const std::string & port, const std::string & settings); + /** + * @brief Destructor + */ + virtual ~AsciiLayer() = default; + /** * @brief Name of the serial port * diff --git a/src/asciilayer_p.h b/src/asciilayer_p.h index d406252..aa73813 100644 --- a/src/asciilayer_p.h +++ b/src/asciilayer_p.h @@ -25,6 +25,7 @@ namespace Modbus { public: Private (const std::string & port, const std::string & settings); + virtual ~Private() = default; int oneByteTime; }; diff --git a/src/device_p.h b/src/device_p.h index 1685b3c..bf58f86 100644 --- a/src/device_p.h +++ b/src/device_p.h @@ -28,6 +28,7 @@ namespace Modbus { public: Private (Device * q); + virtual ~Private() = default; virtual void setBackend (Net net, const std::string & connection, const std::string & settings); virtual void setConfig (const nlohmann::json & config); diff --git a/src/master_p.h b/src/master_p.h index 6b3ba2e..c6aa5d5 100644 --- a/src/master_p.h +++ b/src/master_p.h @@ -26,6 +26,7 @@ namespace Modbus { public: Private (Master * q); + virtual ~Private() = default; void setBackend (Net net, const std::string & connection, const std::string & settings) override; @@ -39,4 +40,3 @@ namespace Modbus { } /* ========================================================================== */ - diff --git a/src/netlayer_p.h b/src/netlayer_p.h index a8a87d9..d39cf9a 100644 --- a/src/netlayer_p.h +++ b/src/netlayer_p.h @@ -24,6 +24,7 @@ namespace Modbus { public: Private (Net n, const std::string & c, const std::string & s, uint16_t m) : net (n), connection (c), settings (s), maxAduLength (m) {} + virtual ~Private() = default; Net net; std::string connection; diff --git a/src/router_p.h b/src/router_p.h index 31197a2..3f8eccc 100644 --- a/src/router_p.h +++ b/src/router_p.h @@ -25,6 +25,7 @@ namespace Modbus { public: Private (Router * q); + virtual ~Private() = default; virtual void setConfig (const nlohmann::json & config); virtual bool open(); diff --git a/src/rtulayer_p.h b/src/rtulayer_p.h index f80bb9d..ea3d754 100644 --- a/src/rtulayer_p.h +++ b/src/rtulayer_p.h @@ -25,6 +25,7 @@ namespace Modbus { public: Private (const std::string & port, const std::string & settings); + virtual ~Private() = default; int oneByteTime; }; diff --git a/src/server.cpp b/src/server.cpp index 853ab26..840fa42 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -496,7 +496,7 @@ namespace Modbus { // --------------------------------------------------------------------------- // static - void * Server::Private::loop (std::future run, Private * d) { + void Server::Private::loop (std::future run, Private * d) { int rc; while (run.wait_for (std::chrono::milliseconds (100)) == std::future_status::timeout) { diff --git a/src/server_p.h b/src/server_p.h index e1fe1c7..0fcc824 100644 --- a/src/server_p.h +++ b/src/server_p.h @@ -30,6 +30,7 @@ namespace Modbus { static const int MAX_CONNECTIONS = 16; public: Private (Server * q); + virtual ~Private() = default; virtual void setBackend (Net net, const std::string & connection, const std::string & settings); virtual void setConfig (const nlohmann::json & config); @@ -41,7 +42,7 @@ namespace Modbus { BufferedSlave * addSlave (int slaveAddr, Device * master); - static void * loop (std::future run, Private * d); + static void loop (std::future run, Private * d); static int receive (Private * d); int listen_sock = -1; diff --git a/src/slave_p.h b/src/slave_p.h index 736f303..b3c8700 100644 --- a/src/slave_p.h +++ b/src/slave_p.h @@ -28,6 +28,7 @@ namespace Modbus { public: Private (Slave * q); Private (Slave * q, int s, Device * d); + virtual ~Private() = default; inline modbus_t * ctx() { return dev->backend().context(); diff --git a/src/tcplayer_p.h b/src/tcplayer_p.h index 0aa28fe..a3fb590 100644 --- a/src/tcplayer_p.h +++ b/src/tcplayer_p.h @@ -25,6 +25,7 @@ namespace Modbus { public: Private (const std::string & host, const std::string & service); + virtual ~Private() = default; uint16_t transactionId; };