From 4ee4759a51cf944de103eb73a654ec00ccb3664d Mon Sep 17 00:00:00 2001
From: Maxim Mamontov <faust.madf@gmail.com>
Date: Wed, 14 Sep 2011 16:13:17 +0300
Subject: [PATCH] Virtual destructor added to interface classes

---
 include/stg/admin.h        | 19 ++++++++++---------
 include/stg/admins.h       |  1 +
 include/stg/corporations.h |  1 +
 include/stg/message.h      |  6 +++---
 include/stg/plugin.h       |  1 +
 include/stg/services.h     |  1 +
 include/stg/store.h        |  1 +
 include/stg/tariff.h       |  1 +
 include/stg/tariffs.h      |  1 +
 include/stg/user.h         |  1 +
 include/stg/users.h        |  1 +
 11 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/include/stg/admin.h b/include/stg/admin.h
index c5baf519..7552a1a1 100644
--- a/include/stg/admin.h
+++ b/include/stg/admin.h
@@ -28,15 +28,16 @@
 
 class ADMIN {
 public:
-      virtual const std::string & GetPassword() const = 0;
-      virtual const std::string & GetLogin() const = 0;
-      virtual PRIV const *        GetPriv() const = 0;
-      virtual uint16_t            GetPrivAsInt() const = 0;
-      virtual const ADMIN_CONF &  GetConf() const = 0;
-      virtual uint32_t            GetIP() const = 0;
-      virtual std::string         GetIPStr() const = 0;
-      virtual void                SetIP(uint32_t ip) = 0;
-      virtual const std::string   GetLogStr() const = 0;
+    virtual ~ADMIN() {}
+    virtual const std::string & GetPassword() const = 0;
+    virtual const std::string & GetLogin() const = 0;
+    virtual PRIV const *        GetPriv() const = 0;
+    virtual uint16_t            GetPrivAsInt() const = 0;
+    virtual const ADMIN_CONF &  GetConf() const = 0;
+    virtual uint32_t            GetIP() const = 0;
+    virtual std::string         GetIPStr() const = 0;
+    virtual void                SetIP(uint32_t ip) = 0;
+    virtual const std::string   GetLogStr() const = 0;
 };
 
 #endif
diff --git a/include/stg/admins.h b/include/stg/admins.h
index 7536a4a5..54ea1056 100644
--- a/include/stg/admins.h
+++ b/include/stg/admins.h
@@ -28,6 +28,7 @@
 
 class ADMINS {
 public:
+    virtual ~ADMINS() {}
     virtual int Add(const std::string & login, const ADMIN * admin) = 0;
     virtual int Del(const std::string & login, const ADMIN * admin) = 0;
     virtual int Change(const ADMIN_CONF & ac, const ADMIN * admin) = 0;
diff --git a/include/stg/corporations.h b/include/stg/corporations.h
index 88c1e8bd..2d07c6c6 100644
--- a/include/stg/corporations.h
+++ b/include/stg/corporations.h
@@ -29,6 +29,7 @@ class ADMIN;
 
 class CORPORATIONS {
 public:
+    virtual ~CORPORATIONS() {}
     virtual int Add(const CORP_CONF & corp, const ADMIN * admin) = 0;
     virtual int Del(const std::string & name, const ADMIN * admin) = 0;
     virtual int Change(const CORP_CONF & corp, const ADMIN * admin) = 0;
diff --git a/include/stg/message.h b/include/stg/message.h
index 16fe566f..5a0e918e 100644
--- a/include/stg/message.h
+++ b/include/stg/message.h
@@ -27,7 +27,7 @@ STG_MSG_HDR()
       showTime(0),
       repeat(0),
       repeatPeriod(0)
-{};
+{}
 
 uint64_t    id;
 unsigned    ver;
@@ -41,12 +41,12 @@ unsigned    repeatPeriod;
 //-----------------------------------------------------------------------------
 struct STG_MSG
 {
-STG_MSG() {};
+STG_MSG() : header(), text() {}
 
 time_t GetNextSendTime() const
 {
 return header.lastSendTime + header.repeat * 60;
-};
+}
 
 STG_MSG_HDR header;
 std::string text;
diff --git a/include/stg/plugin.h b/include/stg/plugin.h
index 845a3d15..2ecf7af0 100644
--- a/include/stg/plugin.h
+++ b/include/stg/plugin.h
@@ -45,6 +45,7 @@ struct MODULE_SETTINGS;
 
 class PLUGIN : private NONCOPYABLE {
 public:
+    virtual ~PLUGIN() {}
     virtual void                SetUsers(USERS *) {}
     virtual void                SetTariffs(TARIFFS *) {}
     virtual void                SetAdmins(ADMINS *) {}
diff --git a/include/stg/services.h b/include/stg/services.h
index 5ff7a1a8..ddec31be 100644
--- a/include/stg/services.h
+++ b/include/stg/services.h
@@ -29,6 +29,7 @@ class ADMIN;
 
 class SERVICES {
 public:
+    virtual ~SERVICES() {}
     virtual int Add(const SERVICE_CONF & service, const ADMIN * admin) = 0;
     virtual int Del(const std::string & name, const ADMIN * admin) = 0;
     virtual int Change(const SERVICE_CONF & service, const ADMIN * admin) = 0;
diff --git a/include/stg/store.h b/include/stg/store.h
index 0eaf6c3e..e966076f 100644
--- a/include/stg/store.h
+++ b/include/stg/store.h
@@ -43,6 +43,7 @@
 //-----------------------------------------------------------------------------
 class STORE {
 public:
+    virtual ~STORE() {}
     virtual int GetUsersList(std::vector<std::string> * usersList) const = 0;
     virtual int AddUser(const std::string & login) const = 0;
     virtual int DelUser(const std::string & login) const = 0;
diff --git a/include/stg/tariff.h b/include/stg/tariff.h
index 189dde59..a5b1d2e9 100644
--- a/include/stg/tariff.h
+++ b/include/stg/tariff.h
@@ -30,6 +30,7 @@
 
 class TARIFF {
 public:
+    virtual ~TARIFF() {}
     virtual double  GetPriceWithTraffType(uint64_t up,
                                           uint64_t down,
                                           int dir,
diff --git a/include/stg/tariffs.h b/include/stg/tariffs.h
index 515e7608..9a35f645 100644
--- a/include/stg/tariffs.h
+++ b/include/stg/tariffs.h
@@ -32,6 +32,7 @@ struct TARIFF_DATA;
 
 class TARIFFS {
 public:
+    virtual ~TARIFFS() {}
     virtual int ReadTariffs () = 0;
     virtual const TARIFF * FindByName(const std::string & name) const = 0;
     virtual const TARIFF * GetNoTariff() const = 0;
diff --git a/include/stg/user.h b/include/stg/user.h
index 9cc44df8..204899ac 100644
--- a/include/stg/user.h
+++ b/include/stg/user.h
@@ -35,6 +35,7 @@ class AUTH;
 
 class USER {
 public:
+    virtual ~USER() {}
     virtual int                 WriteConf() = 0;
     virtual int                 WriteStat() = 0;
 
diff --git a/include/stg/users.h b/include/stg/users.h
index 80ee8478..2ba23833 100644
--- a/include/stg/users.h
+++ b/include/stg/users.h
@@ -30,6 +30,7 @@ class ADMIN;
 
 class USERS {
 public:
+    virtual ~USERS() {}
     virtual int  FindByName(const std::string & login, USER_PTR * user) = 0;
 
     virtual bool TariffInUse(const std::string & tariffName) const = 0;
-- 
2.44.2