Bläddra i källkod

2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

	Added convenient method RequestGroupMan::getOrCreateServerStat()
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
Tatsuhiro Tsujikawa 17 år sedan
förälder
incheckning
72da43e47f
3 ändrade filer med 23 tillägg och 8 borttagningar
  1. 6 0
      ChangeLog
  2. 14 7
      src/RequestGroupMan.cc
  3. 3 1
      src/RequestGroupMan.h

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2008-09-14  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+	Added convenient method RequestGroupMan::getOrCreateServerStat()
+	* src/RequestGroupMan.cc
+	* src/RequestGroupMan.h
+
 2008-09-14  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 
 	If error event is received in epoll, then abort download immediately.

+ 14 - 7
src/RequestGroupMan.cc

@@ -203,13 +203,8 @@ public:
 	    continue;
 	  }
 	  SharedHandle<ServerStat> ss =
-	    _requestGroupMan->findServerStat((*i)->getHostname(),
-					     (*i)->getProtocol());
-	  if(ss.isNull()) {
-	    ss.reset(new ServerStat((*i)->getHostname(),
-				    (*i)->getProtocol()));
-	    _requestGroupMan->addServerStat(ss);
-	  }
+	    _requestGroupMan->getOrCreateServerStat((*i)->getHostname(),
+						    (*i)->getProtocol());
 	  ss->updateDownloadSpeed((*i)->getAvgDownloadSpeed());
 	}
       }
@@ -475,6 +470,18 @@ RequestGroupMan::findServerStat(const std::string& hostname,
   return _serverStatMan->find(hostname, protocol);
 }
 
+SharedHandle<ServerStat>
+RequestGroupMan::getOrCreateServerStat(const std::string& hostname,
+				       const std::string& protocol)
+{
+  SharedHandle<ServerStat> ss = findServerStat(hostname, protocol);
+  if(ss.isNull()) {
+    ss.reset(new ServerStat(hostname, protocol));
+    addServerStat(ss);
+  }
+  return ss;
+}
+
 bool RequestGroupMan::addServerStat(const SharedHandle<ServerStat>& serverStat)
 {
   return _serverStatMan->add(serverStat);

+ 3 - 1
src/RequestGroupMan.h

@@ -139,8 +139,10 @@ public:
   SharedHandle<ServerStat> findServerStat(const std::string& hostname,
 					  const std::string& protocol) const;
 
-  bool addServerStat(const SharedHandle<ServerStat>& serverStat);
+  SharedHandle<ServerStat> getOrCreateServerStat(const std::string& hostname,
+						 const std::string& protocol);
 
+  bool addServerStat(const SharedHandle<ServerStat>& serverStat);
 
   void updateServerStat();