]> git.stg.codes - stg.git/commitdiff
Проведен рефакторинг библиотеки поддержки ICMP, некоторые методы сделаны
authorMaxim Mamontov <faust@gts.dp.ua>
Wed, 8 Dec 2010 14:03:35 +0000 (16:03 +0200)
committerMaxim Mamontov <faust@gts.dp.ua>
Wed, 8 Dec 2010 14:03:35 +0000 (16:03 +0200)
константными, добавлена инициализация членов класса в конструкторе

stglibs/pinger.lib/pinger.cpp
stglibs/pinger.lib/pinger.h

index 9169b4e607f07400c9ac8968168c81357664d1d5..edbcd11e33d415b46d5f6748d0f4980b45f71100 100644 (file)
@@ -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;
 }
 //-----------------------------------------------------------------------------
-
index 4349eb07ab929165c803efabe7753b8f19752311..1398332d9badd416debebcdda0ff1e8685ed4048 100644 (file)
@@ -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
-
-