diff --git a/ChangeLog b/ChangeLog index 708dd7e27..1c6039716 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,192 @@ +2009-06-28 Tatsuhiro Tsujikawa + + Rewritten DownloadContext and removed SingleFileDownloadContext + and BtContext and its derived classes. BitTorrent specific + attributes are now set by DownloadContext::setAttribute() with key + bittorrent::BITTORRENT. + * src/AbstractBtMessage.cc + * src/AbstractBtMessage.h + * src/AbstractCommand.cc + * src/AbstractCommand.h + * src/AbstractProxyRequestCommand.cc + * src/AbstractProxyResponseCommand.cc + * src/ActivePeerConnectionCommand.cc + * src/ActivePeerConnectionCommand.h + * src/AnnounceList.cc + * src/BtCheckIntegrityEntry.cc + * src/BtConstants.h + * src/BtContext.h: Removed + * src/BtDependency.cc + * src/BtExtendedMessage.cc + * src/BtPieceMessage.cc + * src/BtPieceMessage.h + * src/BtPostDownloadHandler.cc + * src/BtRegistry.cc + * src/BtRegistry.h + * src/BtSetup.cc + * src/CheckIntegrityCommand.cc + * src/CheckIntegrityEntry.cc + * src/ChecksumCheckIntegrityEntry.cc + * src/ConsoleStatCalc.cc + * src/ContentTypeRequestGroupCriteria.cc + * src/DHTGetPeersCommand.cc + * src/DHTGetPeersCommand.h + * src/DHTPeerLookupTask.cc + * src/DHTPeerLookupTask.h + * src/DHTTaskFactory.h + * src/DHTTaskFactoryImpl.cc + * src/DHTTaskFactoryImpl.h + * src/DefaultBtAnnounce.cc + * src/DefaultBtAnnounce.h + * src/DefaultBtContext.cc: Removed + * src/DefaultBtContext.h: Removed + * src/DefaultBtInteractive.cc + * src/DefaultBtInteractive.h + * src/DefaultBtMessageDispatcher.cc + * src/DefaultBtMessageDispatcher.h + * src/DefaultBtMessageFactory.cc + * src/DefaultBtMessageFactory.h + * src/DefaultBtMessageReceiver.cc + * src/DefaultBtMessageReceiver.h + * src/DefaultBtProgressInfoFile.cc + * src/DefaultBtRequestFactory.cc + * src/DefaultBtRequestFactory.h + * src/DefaultExtensionMessageFactory.cc + * src/DefaultExtensionMessageFactory.h + * src/DefaultPeerStorage.cc + * src/DefaultPeerStorage.h + * src/DefaultPieceStorage.cc + * src/DefaultSegmentManFactory.cc + * src/DiskAdaptor.cc + * src/DiskAdaptor.h + * src/DownloadContext.cc + * src/DownloadContext.h + * src/DownloadEngine.cc + * src/DownloadEngineFactory.cc + * src/DownloadHandler.cc + * src/DownloadResult.h + * src/FileAllocationCommand.cc + * src/FileAllocationDispatcherCommand.cc + * src/FileAllocationEntry.cc + * src/FileEntry.h + * src/FillRequestGroupCommand.cc + * src/FtpDownloadCommand.cc + * src/FtpFinishDownloadCommand.cc + * src/FtpInitiateConnectionCommand.cc + * src/FtpNegotiationCommand.cc + * src/FtpTunnelRequestCommand.cc + * src/FtpTunnelResponseCommand.cc + * src/HandshakeExtensionMessage.cc + * src/HandshakeExtensionMessage.h + * src/HaveEraseCommand.cc + * src/HttpDownloadCommand.cc + * src/HttpInitiateConnectionCommand.cc + * src/HttpProxyRequestCommand.cc + * src/HttpProxyResponseCommand.cc + * src/HttpRequest.cc + * src/HttpRequest.h + * src/HttpRequestCommand.cc + * src/HttpResponseCommand.cc + * src/HttpServerBodyCommand.cc + * src/HttpServerCommand.cc + * src/HttpSkipResponseCommand.cc + * src/InitiateConnectionCommandFactory.cc + * src/InitiatorMSEHandshakeCommand.cc + * src/InitiatorMSEHandshakeCommand.h + * src/IteratableChecksumValidator.cc + * src/IteratableChecksumValidator.h + * src/IteratableChunkChecksumValidator.cc + * src/MSEHandshake.cc + * src/MSEHandshake.h + * src/Makefile.am + * src/Makefile.in + * src/Metalink2RequestGroup.cc + * src/MetalinkPostDownloadHandler.cc + * src/MultiDiskAdaptor.cc + * src/MultiDiskAdaptor.h + * src/MultiFileAllocationIterator.cc + * src/MultiUrlRequestInfo.cc + * src/PeerChokeCommand.cc + * src/PeerChokeCommand.h + * src/PeerInitiateConnectionCommand.cc + * src/PeerInitiateConnectionCommand.h + * src/PeerInteractionCommand.cc + * src/PeerInteractionCommand.h + * src/PeerReceiveHandshakeCommand.cc + * src/PieceHashCheckIntegrityEntry.cc + * src/RealtimeCommand.cc + * src/ReceiverMSEHandshakeCommand.cc + * src/RequestGroup.cc + * src/RequestGroup.h + * src/RequestGroupEntry.cc + * src/RequestGroupMan.cc + * src/SeedCheckCommand.cc + * src/SeedCheckCommand.h + * src/SegmentMan.cc + * src/ShareRatioSeedCriteria.h + * src/SingleFileDownloadContext.cc: Removed + * src/SingleFileDownloadContext.h: Removed + * src/SleepCommand.cc + * src/StreamCheckIntegrityEntry.cc + * src/TrackerWatcherCommand.cc + * src/TrackerWatcherCommand.h + * src/UnknownLengthPieceStorage.cc + * src/Util.cc + * src/Util.h + * src/XmlRpcMethodImpl.cc + * src/bittorrent_helper.cc + * src/bittorrent_helper.h + * src/download_helper.cc + * src/main.cc + * src/option_processing.cc + * test/BitfieldManTest.cc + * test/BittorrentHelperTest.cc + * test/BtCancelMessageTest.cc + * test/BtChokeMessageTest.cc + * test/BtDependencyTest.cc + * test/BtPieceMessageTest.cc + * test/BtPostDownloadHandlerTest.cc + * test/BtRegistryTest.cc + * test/BtRejectMessageTest.cc + * test/BtRequestMessageTest.cc + * test/DHTPeerAnnounceStorageTest.cc + * test/DefaultBtAnnounceTest.cc + * test/DefaultBtContextTest.cc: Removed + * test/DefaultBtMessageDispatcherTest.cc + * test/DefaultBtMessageFactoryTest.cc + * test/DefaultBtProgressInfoFileTest.cc + * test/DefaultBtRequestFactoryTest.cc + * test/DefaultExtensionMessageFactoryTest.cc + * test/DefaultPeerStorageTest.cc + * test/DefaultPieceStorageTest.cc + * test/DirectDiskAdaptorTest.cc + * test/DownloadContextTest.cc + * test/DownloadHandlerFactoryTest.cc + * test/DownloadHelperTest.cc + * test/HandshakeExtensionMessageTest.cc + * test/HttpRequestTest.cc + * test/HttpResponseTest.cc + * test/IteratableChecksumValidatorTest.cc + * test/IteratableChunkChecksumValidatorTest.cc + * test/MSEHandshakeTest.cc + * test/Makefile.am + * test/Makefile.in + * test/Metalink2RequestGroupTest.cc + * test/MetalinkPostDownloadHandlerTest.cc + * test/MockBtContext.h: Removed + * test/MockDHTTaskFactory.h + * test/MockDownloadContext.h: Removed + * test/MockPieceStorage.h + * test/MultiDiskAdaptorTest.cc + * test/MultiFileAllocationIteratorTest.cc + * test/RequestGroupManTest.cc + * test/RequestGroupTest.cc + * test/SegmentManTest.cc + * test/ShareRatioSeedCriteriaTest.cc + * test/SingleFileDownloadContextTest.cc: Removed + * test/UtilTest.cc + * test/XmlRpcMethodTest.cc + 2009-06-24 Tatsuhiro Tsujikawa Added experimental support of WEB-Seeding for multi-file torrent. diff --git a/src/AbstractBtMessage.cc b/src/AbstractBtMessage.cc index f2aa432b7..d68d49b1f 100644 --- a/src/AbstractBtMessage.cc +++ b/src/AbstractBtMessage.cc @@ -34,7 +34,6 @@ /* copyright --> */ #include "AbstractBtMessage.h" #include "Peer.h" -#include "BtContext.h" #include "PieceStorage.h" #include "BtMessageValidator.h" #include "LogFactory.h" @@ -73,11 +72,6 @@ AbstractBtMessage::setBtMessageValidator(const SharedHandle& this->validator = validator; } -void AbstractBtMessage::setBtContext(const SharedHandle& btContext) -{ - this->btContext = btContext; -} - void AbstractBtMessage::setPieceStorage(const SharedHandle& pieceStorage) { this->pieceStorage = pieceStorage; diff --git a/src/AbstractBtMessage.h b/src/AbstractBtMessage.h index 16fa4013b..588bc96eb 100644 --- a/src/AbstractBtMessage.h +++ b/src/AbstractBtMessage.h @@ -41,7 +41,6 @@ namespace aria2 { -class BtContext; class PieceStorage; class Peer; class BtMessageDispatcher; @@ -60,8 +59,6 @@ protected: std::string _name; - SharedHandle btContext; - SharedHandle pieceStorage; SharedHandle peer; @@ -137,13 +134,6 @@ public: void setBtMessageValidator(const SharedHandle& validator); - void setBtContext(const SharedHandle& btContext); - - const SharedHandle& getBtContext() const - { - return btContext; - } - void setPieceStorage(const SharedHandle& pieceStorage); void setBtMessageDispatcher(const WeakHandle& dispatcher); diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc index b1004a48b..57f1a80ad 100644 --- a/src/AbstractCommand.cc +++ b/src/AbstractCommand.cc @@ -36,7 +36,6 @@ #include -#include "RequestGroup.h" #include "Request.h" #include "DownloadEngine.h" #include "Option.h" @@ -231,9 +230,9 @@ bool AbstractCommand::execute() { void AbstractCommand::tryReserved() { _requestGroup->removeServerHost(cuid); - if(_requestGroup->getDownloadContext()->getFileMode() == DownloadContext::SINGLE) { + if(_requestGroup->getDownloadContext()->getFileEntries().size() == 1) { const SharedHandle& entry = - _requestGroup->getDownloadContext()->getFileEntries().front(); + _requestGroup->getDownloadContext()->getFirstFileEntry(); // Don't create new command if currently file length is unknown // and there are no URI left. Because file length is unknown, we // can assume that there are no in-flight request object. diff --git a/src/AbstractCommand.h b/src/AbstractCommand.h index ba7a7aa46..d7ced6d26 100644 --- a/src/AbstractCommand.h +++ b/src/AbstractCommand.h @@ -39,12 +39,12 @@ #include "SharedHandle.h" #include "TimeA2.h" #include "FileEntry.h" +#include "RequestGroup.h" namespace aria2 { class Request; class DownloadEngine; -class RequestGroup; class Segment; class Exception; class SocketCore; @@ -122,6 +122,11 @@ protected: const std::string& resolveProxyMethod(const std::string& protocol) const; const SharedHandle