summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-12-04 12:48:54 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-12-04 12:48:54 +0000
commit625a102d1ba297cd500b0dec3bfbb417469ebab5 (patch)
tree08cf041bf0309ec40c63ba87c4f67e391ec8f23c /src
parent56265173bd54bb164bd14a527de54cddd7219ece (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.h5
-rw-r--r--src/DefaultBtInteractive.cc4
-rw-r--r--src/DefaultExtensionMessageFactory.cc2
-rw-r--r--src/DefaultExtensionMessageFactory.h8
-rw-r--r--src/PeerInteractionCommand.cc1
-rw-r--r--src/UTMetadataDataExtensionMessage.cc2
-rw-r--r--src/UTMetadataDataExtensionMessage.h8
-rw-r--r--src/UTMetadataRequestExtensionMessage.cc1
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 {