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

Removed Peer.cc from compile source list when --disable-bittorrent
	is specified.  Added #ifdef ENABLE_BITTORRENT guard to methods that
	takes Peer.
	* src/DefaultPieceStorage.cc
	* src/DefaultPieceStorage.h
	* src/Makefile.am
	* src/PieceStorage.h
	* src/UnknownLengthPieceStorage.cc
	* src/UnknownLengthPieceStorage.h
	* test/MockPieceStorage.h
pull/1/head
Tatsuhiro Tsujikawa 2009-05-29 12:32:17 +00:00
parent 8b6da1ee36
commit 918c6bf38d
9 changed files with 62 additions and 18 deletions

View File

@ -1,3 +1,16 @@
2009-05-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Removed Peer.cc from compile source list when --disable-bittorrent
is specified. Added #ifdef ENABLE_BITTORRENT guard to methods that
takes Peer.
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/Makefile.am
* src/PieceStorage.h
* src/UnknownLengthPieceStorage.cc
* src/UnknownLengthPieceStorage.h
* test/MockPieceStorage.h
2009-05-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2009-05-29 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Implemented getter methods in header files to give them more Implemented getter methods in header files to give them more

View File

@ -80,12 +80,6 @@ DefaultPieceStorage::~DefaultPieceStorage() {
delete bitfieldMan; delete bitfieldMan;
} }
bool DefaultPieceStorage::hasMissingPiece(const PeerHandle& peer)
{
return bitfieldMan->hasMissingPiece(peer->getBitfield(),
peer->getBitfieldLength());
}
bool DefaultPieceStorage::isEndGame() bool DefaultPieceStorage::isEndGame()
{ {
return bitfieldMan->countMissingBlock() <= endGamePieceNum; return bitfieldMan->countMissingBlock() <= endGamePieceNum;
@ -194,6 +188,14 @@ SharedHandle<Piece> DefaultPieceStorage::getMissingPiece
return getMissingPiece(bitfield.getBitfield(), bitfield.getBitfieldLength()); return getMissingPiece(bitfield.getBitfield(), bitfield.getBitfieldLength());
} }
#ifdef ENABLE_BITTORRENT
bool DefaultPieceStorage::hasMissingPiece(const PeerHandle& peer)
{
return bitfieldMan->hasMissingPiece(peer->getBitfield(),
peer->getBitfieldLength());
}
PieceHandle DefaultPieceStorage::getMissingPiece(const SharedHandle<Peer>& peer) PieceHandle DefaultPieceStorage::getMissingPiece(const SharedHandle<Peer>& peer)
{ {
return getMissingPiece(peer->getBitfield(), peer->getBitfieldLength()); return getMissingPiece(peer->getBitfield(), peer->getBitfieldLength());
@ -257,6 +259,8 @@ SharedHandle<Piece> DefaultPieceStorage::getMissingFastPiece
} }
} }
#endif // ENABLE_BITTORRENT
PieceHandle DefaultPieceStorage::getMissingPiece() PieceHandle DefaultPieceStorage::getMissingPiece()
{ {
size_t index; size_t index;

View File

@ -94,8 +94,10 @@ private:
SharedHandle<Piece> getMissingPiece(const BitfieldMan& bitfield); SharedHandle<Piece> getMissingPiece(const BitfieldMan& bitfield);
#ifdef ENABLE_BITTORRENT
void createFastIndexBitfield(BitfieldMan& bitfield, void createFastIndexBitfield(BitfieldMan& bitfield,
const SharedHandle<Peer>& peer); const SharedHandle<Peer>& peer);
#endif // ENABLE_BITTORRENT
SharedHandle<Piece> checkOutPiece(size_t index); SharedHandle<Piece> checkOutPiece(size_t index);
// size_t deleteUsedPiecesByFillRate(int fillRate, size_t toDelete); // size_t deleteUsedPiecesByFillRate(int fillRate, size_t toDelete);
@ -115,6 +117,8 @@ public:
virtual ~DefaultPieceStorage(); virtual ~DefaultPieceStorage();
#ifdef ENABLE_BITTORRENT
virtual bool hasMissingPiece(const SharedHandle<Peer>& peer); virtual bool hasMissingPiece(const SharedHandle<Peer>& peer);
virtual SharedHandle<Piece> getMissingPiece(const SharedHandle<Peer>& peer); virtual SharedHandle<Piece> getMissingPiece(const SharedHandle<Peer>& peer);
@ -127,6 +131,8 @@ public:
virtual SharedHandle<Piece> getMissingFastPiece virtual SharedHandle<Piece> getMissingFastPiece
(const SharedHandle<Peer>& peer, const std::deque<size_t>& excludedIndexes); (const SharedHandle<Peer>& peer, const std::deque<size_t>& excludedIndexes);
#endif // ENABLE_BITTORRENT
virtual SharedHandle<Piece> getMissingPiece(); virtual SharedHandle<Piece> getMissingPiece();
virtual SharedHandle<Piece> getMissingPiece(size_t index); virtual SharedHandle<Piece> getMissingPiece(size_t index);

View File

@ -144,7 +144,6 @@ SRCS = Socket.h\
AbstractSingleDiskAdaptor.cc AbstractSingleDiskAdaptor.h\ AbstractSingleDiskAdaptor.cc AbstractSingleDiskAdaptor.h\
DirectDiskAdaptor.cc DirectDiskAdaptor.h\ DirectDiskAdaptor.cc DirectDiskAdaptor.h\
MultiDiskAdaptor.cc MultiDiskAdaptor.h\ MultiDiskAdaptor.cc MultiDiskAdaptor.h\
Peer.cc\
PeerSessionResource.cc PeerSessionResource.h\ PeerSessionResource.cc PeerSessionResource.h\
BtRegistry.cc BtRegistry.h\ BtRegistry.cc BtRegistry.h\
MultiFileAllocationIterator.cc MultiFileAllocationIterator.h\ MultiFileAllocationIterator.cc MultiFileAllocationIterator.h\

View File

@ -393,7 +393,7 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
IteratableValidator.h DiskAdaptor.cc DiskAdaptor.h \ IteratableValidator.h DiskAdaptor.cc DiskAdaptor.h \
AbstractSingleDiskAdaptor.cc AbstractSingleDiskAdaptor.h \ AbstractSingleDiskAdaptor.cc AbstractSingleDiskAdaptor.h \
DirectDiskAdaptor.cc DirectDiskAdaptor.h MultiDiskAdaptor.cc \ DirectDiskAdaptor.cc DirectDiskAdaptor.h MultiDiskAdaptor.cc \
MultiDiskAdaptor.h Peer.cc PeerSessionResource.cc \ MultiDiskAdaptor.h PeerSessionResource.cc \
PeerSessionResource.h BtRegistry.cc BtRegistry.h \ PeerSessionResource.h BtRegistry.cc BtRegistry.h \
MultiFileAllocationIterator.cc MultiFileAllocationIterator.h \ MultiFileAllocationIterator.cc MultiFileAllocationIterator.h \
PeerConnection.cc PeerConnection.h ByteArrayDiskWriter.cc \ PeerConnection.cc PeerConnection.h ByteArrayDiskWriter.cc \
@ -458,7 +458,7 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
PeerAbstractCommand.cc PeerAbstractCommand.h \ PeerAbstractCommand.cc PeerAbstractCommand.h \
PeerInitiateConnectionCommand.cc \ PeerInitiateConnectionCommand.cc \
PeerInitiateConnectionCommand.h PeerInteractionCommand.cc \ PeerInitiateConnectionCommand.h PeerInteractionCommand.cc \
PeerInteractionCommand.h Peer.h PeerListenCommand.cc \ PeerInteractionCommand.h Peer.cc Peer.h PeerListenCommand.cc \
PeerListenCommand.h RequestSlot.cc RequestSlot.h \ PeerListenCommand.h RequestSlot.cc RequestSlot.h \
TrackerWatcherCommand.cc TrackerWatcherCommand.h \ TrackerWatcherCommand.cc TrackerWatcherCommand.h \
PeerChokeCommand.cc PeerChokeCommand.h SeedCriteria.h \ PeerChokeCommand.cc PeerChokeCommand.h SeedCriteria.h \
@ -826,9 +826,9 @@ am__objects_26 = SocketCore.$(OBJEXT) Command.$(OBJEXT) \
StreamCheckIntegrityEntry.$(OBJEXT) DiskAdaptor.$(OBJEXT) \ StreamCheckIntegrityEntry.$(OBJEXT) DiskAdaptor.$(OBJEXT) \
AbstractSingleDiskAdaptor.$(OBJEXT) \ AbstractSingleDiskAdaptor.$(OBJEXT) \
DirectDiskAdaptor.$(OBJEXT) MultiDiskAdaptor.$(OBJEXT) \ DirectDiskAdaptor.$(OBJEXT) MultiDiskAdaptor.$(OBJEXT) \
Peer.$(OBJEXT) PeerSessionResource.$(OBJEXT) \ PeerSessionResource.$(OBJEXT) BtRegistry.$(OBJEXT) \
BtRegistry.$(OBJEXT) MultiFileAllocationIterator.$(OBJEXT) \ MultiFileAllocationIterator.$(OBJEXT) PeerConnection.$(OBJEXT) \
PeerConnection.$(OBJEXT) ByteArrayDiskWriter.$(OBJEXT) \ ByteArrayDiskWriter.$(OBJEXT) \
ByteArrayDiskWriterFactory.$(OBJEXT) ServerHost.$(OBJEXT) \ ByteArrayDiskWriterFactory.$(OBJEXT) ServerHost.$(OBJEXT) \
DownloadContext.$(OBJEXT) SingleFileDownloadContext.$(OBJEXT) \ DownloadContext.$(OBJEXT) SingleFileDownloadContext.$(OBJEXT) \
TimedHaltCommand.$(OBJEXT) prefs.$(OBJEXT) \ TimedHaltCommand.$(OBJEXT) prefs.$(OBJEXT) \
@ -1149,7 +1149,7 @@ SRCS = Socket.h SocketCore.cc SocketCore.h BinaryStream.h Command.cc \
IteratableValidator.h DiskAdaptor.cc DiskAdaptor.h \ IteratableValidator.h DiskAdaptor.cc DiskAdaptor.h \
AbstractSingleDiskAdaptor.cc AbstractSingleDiskAdaptor.h \ AbstractSingleDiskAdaptor.cc AbstractSingleDiskAdaptor.h \
DirectDiskAdaptor.cc DirectDiskAdaptor.h MultiDiskAdaptor.cc \ DirectDiskAdaptor.cc DirectDiskAdaptor.h MultiDiskAdaptor.cc \
MultiDiskAdaptor.h Peer.cc PeerSessionResource.cc \ MultiDiskAdaptor.h PeerSessionResource.cc \
PeerSessionResource.h BtRegistry.cc BtRegistry.h \ PeerSessionResource.h BtRegistry.cc BtRegistry.h \
MultiFileAllocationIterator.cc MultiFileAllocationIterator.h \ MultiFileAllocationIterator.cc MultiFileAllocationIterator.h \
PeerConnection.cc PeerConnection.h ByteArrayDiskWriter.cc \ PeerConnection.cc PeerConnection.h ByteArrayDiskWriter.cc \

View File

@ -36,22 +36,26 @@
#define _D_PIECE_STORAGE_H_ #define _D_PIECE_STORAGE_H_
#include "common.h" #include "common.h"
#include "SharedHandle.h"
#include "TimeA2.h"
#include "IntSequence.h"
#include <string> #include <string>
#include <deque> #include <deque>
#include "SharedHandle.h"
#include "TimeA2.h"
namespace aria2 { namespace aria2 {
class Piece; class Piece;
#ifdef ENABLE_BITTORRENT
class Peer; class Peer;
#endif // ENABLE_BITTORRENT
class DiskAdaptor; class DiskAdaptor;
class PieceStorage { class PieceStorage {
public: public:
virtual ~PieceStorage() {} virtual ~PieceStorage() {}
#ifdef ENABLE_BITTORRENT
/** /**
* Returns true if the peer has a piece that localhost doesn't have. * Returns true if the peer has a piece that localhost doesn't have.
* Otherwise returns false. * Otherwise returns false.
@ -93,6 +97,8 @@ public:
(const SharedHandle<Peer>& peer, (const SharedHandle<Peer>& peer,
const std::deque<size_t>& excludedIndexes) = 0; const std::deque<size_t>& excludedIndexes) = 0;
#endif // ENABLE_BITTORRENT
/** /**
* Returns a missing piece if available. Otherwise returns 0; * Returns a missing piece if available. Otherwise returns 0;
*/ */

View File

@ -33,6 +33,9 @@
*/ */
/* copyright --> */ /* copyright --> */
#include "UnknownLengthPieceStorage.h" #include "UnknownLengthPieceStorage.h"
#include <cstdlib>
#include "DefaultDiskWriter.h" #include "DefaultDiskWriter.h"
#include "DirectDiskAdaptor.h" #include "DirectDiskAdaptor.h"
#include "prefs.h" #include "prefs.h"
@ -40,7 +43,6 @@
#include "DownloadContext.h" #include "DownloadContext.h"
#include "Piece.h" #include "Piece.h"
#include "FileEntry.h" #include "FileEntry.h"
#include <stdlib.h>
namespace aria2 { namespace aria2 {
@ -67,6 +69,8 @@ void UnknownLengthPieceStorage::initStorage()
_diskAdaptor = directDiskAdaptor; _diskAdaptor = directDiskAdaptor;
} }
#ifdef ENABLE_BITTORRENT
bool UnknownLengthPieceStorage::hasMissingPiece(const SharedHandle<Peer>& peer) bool UnknownLengthPieceStorage::hasMissingPiece(const SharedHandle<Peer>& peer)
{ {
abort(); abort();
@ -94,6 +98,8 @@ SharedHandle<Piece> UnknownLengthPieceStorage::getMissingFastPiece
abort(); abort();
} }
#endif // ENABLE_BITTORRENT
PieceHandle UnknownLengthPieceStorage::getMissingPiece() PieceHandle UnknownLengthPieceStorage::getMissingPiece()
{ {
if(_downloadFinished) { if(_downloadFinished) {

View File

@ -65,6 +65,8 @@ public:
virtual ~UnknownLengthPieceStorage(); virtual ~UnknownLengthPieceStorage();
#ifdef ENABLE_BITTORRENT
/** /**
* Returns true if the peer has a piece that localhost doesn't have. * Returns true if the peer has a piece that localhost doesn't have.
* Otherwise returns false. * Otherwise returns false.
@ -94,6 +96,8 @@ public:
virtual SharedHandle<Piece> getMissingFastPiece virtual SharedHandle<Piece> getMissingFastPiece
(const SharedHandle<Peer>& peer, const std::deque<size_t>& excludedIndexes); (const SharedHandle<Peer>& peer, const std::deque<size_t>& excludedIndexes);
#endif // ENABLE_BITTORRENT
/** /**
* Returns a missing piece if available. Otherwise returns 0; * Returns a missing piece if available. Otherwise returns 0;
*/ */

View File

@ -2,10 +2,12 @@
#define _D_MOCK_PIECE_STORAGE_H_ #define _D_MOCK_PIECE_STORAGE_H_
#include "PieceStorage.h" #include "PieceStorage.h"
#include <algorithm>
#include "BitfieldMan.h" #include "BitfieldMan.h"
#include "Piece.h" #include "Piece.h"
#include "DiskAdaptor.h" #include "DiskAdaptor.h"
#include <algorithm>
namespace aria2 { namespace aria2 {
@ -34,6 +36,8 @@ public:
virtual ~MockPieceStorage() {} virtual ~MockPieceStorage() {}
#ifdef ENABLE_BITTORRENT
virtual bool hasMissingPiece(const SharedHandle<Peer>& peer) { virtual bool hasMissingPiece(const SharedHandle<Peer>& peer) {
return false; return false;
} }
@ -58,6 +62,8 @@ public:
return SharedHandle<Piece>(new Piece()); return SharedHandle<Piece>(new Piece());
} }
#endif // ENABLE_BITTORRENT
virtual SharedHandle<Piece> getMissingPiece() virtual SharedHandle<Piece> getMissingPiece()
{ {
return SharedHandle<Piece>(new Piece()); return SharedHandle<Piece>(new Piece());