From: Maxim Mamontov <faust@gts.dp.ua>
Date: Wed, 8 Dec 2010 14:03:35 +0000 (+0200)
Subject: Проведен рефакторинг библиотеки поддержки ICMP, некоторые методы сделаны
X-Git-Tag: 2.407-rc3~314
X-Git-Url: https://git.stg.codes/stg.git/commitdiff_plain/5924017d951d69132f2b8522dfa04927abc417d0?ds=sidebyside

Проведен рефакторинг библиотеки поддержки ICMP, некоторые методы сделаны
константными, добавлена инициализация членов класса в конструкторе
---

diff --git a/stglibs/pinger.lib/pinger.cpp b/stglibs/pinger.lib/pinger.cpp
index 9169b4e6..edbcd11e 100644
--- a/stglibs/pinger.lib/pinger.cpp
+++ b/stglibs/pinger.lib/pinger.cpp
@@ -24,10 +24,15 @@ extern volatile time_t stgTime;
 
 //-----------------------------------------------------------------------------
 STG_PINGER::STG_PINGER(time_t d)
+    : delay(d),
+      nonstop(false),
+      isRunningRecver(false),
+      isRunningSender(false),
+      sendSocket(-1),
+      recvSocket(-1),
+      pid(0)
 {
-    delay = d;
     pthread_mutex_init(&mutex, NULL);
-    pid = 0;
 }
 //-----------------------------------------------------------------------------
 STG_PINGER::~STG_PINGER()
@@ -172,15 +177,15 @@ void STG_PINGER::RealDelIP()
     ipToDel.erase(ipToDel.begin(), ipToDel.end());
 }
 //-----------------------------------------------------------------------------
-int STG_PINGER::GetPingIPNum()
+int STG_PINGER::GetPingIPNum() const
 {
     return pingIP.size();
 }
 //-----------------------------------------------------------------------------
-void STG_PINGER::GetAllIP(vector<PING_IP_TIME> *)
+/*void STG_PINGER::GetAllIP(vector<PING_IP_TIME> *) const
 {
     //STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-}
+}*/
 //-----------------------------------------------------------------------------
 void STG_PINGER::PrintAllIP()
 {
@@ -199,10 +204,10 @@ void STG_PINGER::PrintAllIP()
 
 }
 //-----------------------------------------------------------------------------
-int STG_PINGER::GetIPTime(uint32_t ip, time_t * t)
+int STG_PINGER::GetIPTime(uint32_t ip, time_t * t) const
 {
     STG_LOCKER lock(&mutex, __FILE__, __LINE__);
-    multimap<uint32_t, time_t>::iterator treeIter;
+    multimap<uint32_t, time_t>::const_iterator treeIter;
 
     treeIter = pingIP.find(ip);
     if (treeIter == pingIP.end())
@@ -217,12 +222,12 @@ void STG_PINGER::SetDelayTime(time_t d)
     delay = d;
 }
 //-----------------------------------------------------------------------------
-time_t STG_PINGER::GetDelayTime()
+time_t STG_PINGER::GetDelayTime() const
 {
     return delay;
 }
 //-----------------------------------------------------------------------------
-string STG_PINGER::GetStrError()
+string STG_PINGER::GetStrError() const
 {
     return errorStr;
 }
@@ -385,4 +390,3 @@ void * STG_PINGER::RunRecvPing(void * d)
     return NULL;
 }
 //-----------------------------------------------------------------------------
-
diff --git a/stglibs/pinger.lib/pinger.h b/stglibs/pinger.lib/pinger.h
index 4349eb07..1398332d 100644
--- a/stglibs/pinger.lib/pinger.h
+++ b/stglibs/pinger.lib/pinger.h
@@ -7,7 +7,7 @@
 #ifndef PINGER_H
 #define PINGER_H
 
-#include <time.h>
+#include <ctime>
 #include <string>
 #include <vector>
 #include <list>
@@ -94,15 +94,23 @@ public:
     int     Stop();
     void    AddIP(uint32_t ip);
     void    DelIP(uint32_t ip);
-    int     GetPingIPNum();
-    void    GetAllIP(vector<PING_IP_TIME> * ipTime);
+    int     GetPingIPNum() const;
+    //void    GetAllIP(vector<PING_IP_TIME> * ipTime) const;
     void    PrintAllIP();
-    int     GetIPTime(uint32_t ip, time_t * t);
+    int     GetIPTime(uint32_t ip, time_t * t) const;
     void    SetDelayTime(time_t delay);
-    time_t  GetDelayTime();
-    string  GetStrError();
+    time_t  GetDelayTime() const;
+    string  GetStrError() const;
 
 private:
+    uint16_t    PingCheckSum(void * data, int len);
+    int         SendPing(uint32_t ip);
+    uint32_t    RecvPing();
+    void        RealAddIP();
+    void        RealDelIP();
+
+    static void * RunSendPing(void * d);
+    static void * RunRecvPing(void * d);
 
     int         delay;
     bool        nonstop;
@@ -116,24 +124,13 @@ private:
     PING_MESSAGE pmSend;
     uint32_t    pid;
 
-    uint16_t    PingCheckSum(void * data, int len);
-    int         SendPing(uint32_t ip);
-    uint32_t    RecvPing();
-    void        RealAddIP();
-    void        RealDelIP();
-
-    static void * RunSendPing(void * d);
-    static void * RunRecvPing(void * d);
-
     string      errorStr;
 
     multimap<uint32_t, time_t>   pingIP;
     list<uint32_t>          ipToAdd;
     list<uint32_t>          ipToDel;
 
-    pthread_mutex_t mutex;
+    mutable pthread_mutex_t mutex;
 };
 //-----------------------------------------------------------------------------
 #endif
-
-