Pārlūkot izejas kodu

2009-05-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Added "downloadSpeed" and uploadSpeed" key in getPeers response.	
	* src/DefaultPeerStorage.cc
	* src/DefaultPeerStorage.h
	* src/PeerStorage.h
	* src/XmlRpcMethodImpl.cc
	* test/MockPeerStorage.h
Tatsuhiro Tsujikawa 16 gadi atpakaļ
vecāks
revīzija
5983e3e9d9

+ 9 - 0
ChangeLog

@@ -1,3 +1,12 @@
+2009-05-13  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Added "downloadSpeed" and uploadSpeed" key in getPeers response.	
+	* src/DefaultPeerStorage.cc
+	* src/DefaultPeerStorage.h
+	* src/PeerStorage.h
+	* src/XmlRpcMethodImpl.cc
+	* test/MockPeerStorage.h
+
 2009-05-13  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Put a call to Socket::isReadable() in try block.

+ 6 - 0
src/DefaultPeerStorage.cc

@@ -246,6 +246,12 @@ void DefaultPeerStorage::updateTransferStatFor(const SharedHandle<Peer>& peer)
   _peerTransferStatMap[peer->getID()] = s;
 }
 
+TransferStat DefaultPeerStorage::getTransferStatFor
+(const SharedHandle<Peer>& peer)
+{
+  return _peerTransferStatMap[peer->getID()];
+}
+
 void DefaultPeerStorage::deleteUnusedPeer(size_t delSize) {
   Peers temp;
   for(Peers::reverse_iterator itr = peers.rbegin();

+ 2 - 0
src/DefaultPeerStorage.h

@@ -98,6 +98,8 @@ public:
 
   virtual void updateTransferStatFor(const SharedHandle<Peer>& peer);
 
+  virtual TransferStat getTransferStatFor(const SharedHandle<Peer>& peer);
+
   virtual void returnPeer(const SharedHandle<Peer>& peer);
 
   virtual bool chokeRoundIntervalElapsed();

+ 2 - 0
src/PeerStorage.h

@@ -87,6 +87,8 @@ public:
 
   virtual void updateTransferStatFor(const SharedHandle<Peer>& peer) = 0;
 
+  virtual TransferStat getTransferStatFor(const SharedHandle<Peer>& peer) = 0;
+
   /**
    * Tells PeerStorage object that peer is no longer used in the session.
    */

+ 3 - 0
src/XmlRpcMethodImpl.cc

@@ -210,6 +210,9 @@ static void gatherPeer(BDE& peers, const SharedHandle<PeerStorage>& ps)
 					(*i)->getBitfieldLength());
     peerEntry["amChoking"] = (*i)->amChoking()?BDE("true"):BDE("false");
     peerEntry["peerChoking"] = (*i)->peerChoking()?BDE("true"):BDE("false");
+    TransferStat stat = ps->getTransferStatFor(*i);
+    peerEntry["downloadSpeed"] = Util::uitos(stat.getDownloadSpeed());
+    peerEntry["uploadSpeed"] = Util::uitos(stat.getUploadSpeed());
     peers << peerEntry;
   }
 }

+ 5 - 0
test/MockPeerStorage.h

@@ -73,6 +73,11 @@ public:
 
   virtual void updateTransferStatFor(const SharedHandle<Peer>& peer) {}
 
+  virtual TransferStat getTransferStatFor(const SharedHandle<Peer>& peer)
+  {
+    return TransferStat();
+  }
+
   int getNumChokeExecuted() const
   {
     return _numChokeExecuted;