mirror of https://github.com/aria2/aria2
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.hpull/1/head
parent
8b6da1ee36
commit
918c6bf38d
13
ChangeLog
13
ChangeLog
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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\
|
||||||
|
|
|
@ -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 \
|
||||||
|
|
|
@ -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;
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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;
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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());
|
||||||
|
|
Loading…
Reference in New Issue