diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-12-04 12:48:54 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-12-04 12:48:54 +0000 |
| commit | 625a102d1ba297cd500b0dec3bfbb417469ebab5 (patch) | |
| tree | 08cf041bf0309ec40c63ba87c4f67e391ec8f23c /src | |
| parent | 56265173bd54bb164bd14a527de54cddd7219ece (diff) | |
2009-12-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Halt metadata download immediately when metadata download is done.
Don't wait unresponsive tracker.
* src/ByteArrayDiskWriter.h
* src/DefaultBtInteractive.cc
* src/DefaultExtensionMessageFactory.cc
* src/DefaultExtensionMessageFactory.h
* src/PeerInteractionCommand.cc
* src/UTMetadataDataExtensionMessage.cc
* src/UTMetadataDataExtensionMessage.h
* src/UTMetadataRequestExtensionMessage.cc
* test/UTMetadataDataExtensionMessageTest.cc
* test/UTMetadataRequestExtensionMessageTest.cc
Diffstat (limited to 'src')
| -rw-r--r-- | src/ByteArrayDiskWriter.h | 5 | ||||
| -rw-r--r-- | src/DefaultBtInteractive.cc | 4 | ||||
| -rw-r--r-- | src/DefaultExtensionMessageFactory.cc | 2 | ||||
| -rw-r--r-- | src/DefaultExtensionMessageFactory.h | 8 | ||||
| -rw-r--r-- | src/PeerInteractionCommand.cc | 1 | ||||
| -rw-r--r-- | src/UTMetadataDataExtensionMessage.cc | 2 | ||||
| -rw-r--r-- | src/UTMetadataDataExtensionMessage.h | 8 | ||||
| -rw-r--r-- | src/UTMetadataRequestExtensionMessage.cc | 1 |
8 files changed, 9 insertions, 22 deletions
diff --git a/src/ByteArrayDiskWriter.h b/src/ByteArrayDiskWriter.h index b1b2388d..a3ed00a5 100644 --- a/src/ByteArrayDiskWriter.h +++ b/src/ByteArrayDiskWriter.h @@ -70,6 +70,11 @@ public: { buf.str(s); } + + std::string getString() const + { + return buf.str(); + } }; typedef SharedHandle<ByteArrayDiskWriter> ByteArrayDiskWriterHandle; diff --git a/src/DefaultBtInteractive.cc b/src/DefaultBtInteractive.cc index df70e063..3655b2b2 100644 --- a/src/DefaultBtInteractive.cc +++ b/src/DefaultBtInteractive.cc @@ -483,6 +483,10 @@ void DefaultBtInteractive::doInteractionProcessing() { _pieceStorage->cancelPiece(_pieceStorage->getPiece(*i)); } } + if(_pieceStorage->downloadFinished()) { + _downloadContext->getOwnerRequestGroup()->setForceHaltRequested + (true, RequestGroup::NONE); + } } } else { checkActiveInteraction(); diff --git a/src/DefaultExtensionMessageFactory.cc b/src/DefaultExtensionMessageFactory.cc index 87261d5d..6dae3cd4 100644 --- a/src/DefaultExtensionMessageFactory.cc +++ b/src/DefaultExtensionMessageFactory.cc @@ -52,7 +52,6 @@ #include "bencode.h" #include "PieceStorage.h" #include "UTMetadataRequestTracker.h" -#include "BtRuntime.h" #include "RequestGroup.h" namespace aria2 { @@ -137,7 +136,6 @@ DefaultExtensionMessageFactory::createMessage(const unsigned char* data, size_t m->setUTMetadataRequestTracker(_tracker); m->setPieceStorage(_dctx->getOwnerRequestGroup()->getPieceStorage()); m->setDownloadContext(_dctx); - m->setBtRuntime(_btRuntime); return m; } case 2: { diff --git a/src/DefaultExtensionMessageFactory.h b/src/DefaultExtensionMessageFactory.h index 778a41ef..9e339bfc 100644 --- a/src/DefaultExtensionMessageFactory.h +++ b/src/DefaultExtensionMessageFactory.h @@ -47,7 +47,6 @@ class DownloadContext; class BtMessageFactory; class BtMessageDispatcher; class UTMetadataRequestTracker; -class BtRuntime; class DefaultExtensionMessageFactory:public ExtensionMessageFactory { private: @@ -59,8 +58,6 @@ private: SharedHandle<DownloadContext> _dctx; - SharedHandle<BtRuntime> _btRuntime; - WeakHandle<BtMessageFactory> _messageFactory; WeakHandle<BtMessageDispatcher> _dispatcher; @@ -111,11 +108,6 @@ public: { _tracker = tracker; } - - void setBtRuntime(const SharedHandle<BtRuntime>& btRuntime) - { - _btRuntime = btRuntime; - } }; typedef SharedHandle<DefaultExtensionMessageFactory> DefaultExtensionMessageFactoryHandle; diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc index 5255fe0e..2d8d4e2b 100644 --- a/src/PeerInteractionCommand.cc +++ b/src/PeerInteractionCommand.cc @@ -122,7 +122,6 @@ PeerInteractionCommand::PeerInteractionCommand (_requestGroup->getDownloadContext()); extensionMessageFactory->setUTMetadataRequestTracker (utMetadataRequestTracker); - extensionMessageFactory->setBtRuntime(_btRuntime); // PieceStorage will be set later. SharedHandle<DefaultBtMessageFactory> factory(new DefaultBtMessageFactory()); diff --git a/src/UTMetadataDataExtensionMessage.cc b/src/UTMetadataDataExtensionMessage.cc index ad194830..e425e917 100644 --- a/src/UTMetadataDataExtensionMessage.cc +++ b/src/UTMetadataDataExtensionMessage.cc @@ -45,7 +45,6 @@ #include "bittorrent_helper.h" #include "DiskAdaptor.h" #include "Piece.h" -#include "BtRuntime.h" #include "LogFactory.h" namespace aria2 { @@ -88,7 +87,6 @@ void UTMetadataDataExtensionMessage::doReceivedAction() if(std::string(&infoHash[0], &infoHash[INFO_HASH_LENGTH]) == attrs[bittorrent::INFO_HASH].s()){ _logger->info("Got ut_metadata"); - _btRuntime->setHalt(true); } else { _logger->info("Got wrong ut_metadata"); for(size_t i = 0; i < _dctx->getNumPieces(); ++i) { diff --git a/src/UTMetadataDataExtensionMessage.h b/src/UTMetadataDataExtensionMessage.h index 6551b90c..36927555 100644 --- a/src/UTMetadataDataExtensionMessage.h +++ b/src/UTMetadataDataExtensionMessage.h @@ -42,7 +42,6 @@ namespace aria2 { class DownloadContext; class PieceStorage; class UTMetadataRequestTracker; -class BtRuntime; class Logger; class UTMetadataDataExtensionMessage:public UTMetadataExtensionMessage { @@ -55,8 +54,6 @@ private: SharedHandle<PieceStorage> _pieceStorage; - SharedHandle<BtRuntime> _btRuntime; - WeakHandle<UTMetadataRequestTracker> _tracker; Logger* _logger; @@ -104,11 +101,6 @@ public: { _dctx = dctx; } - - void setBtRuntime(const SharedHandle<BtRuntime>& btRuntime) - { - _btRuntime = btRuntime; - } }; } // namespace aria2 diff --git a/src/UTMetadataRequestExtensionMessage.cc b/src/UTMetadataRequestExtensionMessage.cc index 8e268f0a..992aee11 100644 --- a/src/UTMetadataRequestExtensionMessage.cc +++ b/src/UTMetadataRequestExtensionMessage.cc @@ -49,7 +49,6 @@ #include "DownloadContext.h" #include "BtMessage.h" #include "PieceStorage.h" -#include "BtRuntime.h" namespace aria2 { |
