summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/AutoSaveCommand.cc7
-rw-r--r--src/BtStopDownloadCommand.cc4
-rw-r--r--src/DHTAutoSaveCommand.cc14
-rw-r--r--src/DHTBucketRefreshCommand.cc14
-rw-r--r--src/DHTPeerAnnounceCommand.cc8
-rw-r--r--src/DHTTokenUpdateCommand.cc5
-rw-r--r--src/HaveEraseCommand.cc11
-rw-r--r--src/TimeBasedCommand.h19
-rw-r--r--src/TimedHaltCommand.cc15
9 files changed, 67 insertions, 30 deletions
diff --git a/src/AutoSaveCommand.cc b/src/AutoSaveCommand.cc
index 2fd7001d..9784f948 100644
--- a/src/AutoSaveCommand.cc
+++ b/src/AutoSaveCommand.cc
@@ -49,14 +49,15 @@ AutoSaveCommand::~AutoSaveCommand() {}
void AutoSaveCommand::preProcess()
{
- if(_e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested()) {
- _exit = true;
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
+ enableExit();
}
}
void AutoSaveCommand::process()
{
- _e->getRequestGroupMan()->save();
+ getDownloadEngine()->getRequestGroupMan()->save();
}
} // namespace aria2
diff --git a/src/BtStopDownloadCommand.cc b/src/BtStopDownloadCommand.cc
index 8f397ef3..eead280e 100644
--- a/src/BtStopDownloadCommand.cc
+++ b/src/BtStopDownloadCommand.cc
@@ -57,14 +57,14 @@ BtStopDownloadCommand::BtStopDownloadCommand
void BtStopDownloadCommand::preProcess()
{
if(_btRuntime->isHalt() || _pieceStorage->downloadFinished()) {
- _exit = true;
+ enableExit();
}
if(_checkPoint.difference(global::wallclock) >= _timeout) {
getLogger()->notice("GID#%s Stop downloading torrent due to"
" --bt-stop-timeout option.",
util::itos(_requestGroup->getGID()).c_str());
_requestGroup->setHaltRequested(true);
- _exit = true;
+ enableExit();
}
}
diff --git a/src/DHTAutoSaveCommand.cc b/src/DHTAutoSaveCommand.cc
index 78d4fc7e..5a908457 100644
--- a/src/DHTAutoSaveCommand.cc
+++ b/src/DHTAutoSaveCommand.cc
@@ -61,16 +61,18 @@
namespace aria2 {
-DHTAutoSaveCommand::DHTAutoSaveCommand(cuid_t cuid, DownloadEngine* e, time_t interval):
+DHTAutoSaveCommand::DHTAutoSaveCommand
+(cuid_t cuid, DownloadEngine* e, time_t interval):
TimeBasedCommand(cuid, e, interval) {}
DHTAutoSaveCommand::~DHTAutoSaveCommand() {}
void DHTAutoSaveCommand::preProcess()
{
- if(_e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested()) {
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
save();
- _exit = true;
+ enableExit();
}
}
@@ -81,7 +83,8 @@ void DHTAutoSaveCommand::process()
void DHTAutoSaveCommand::save()
{
- std::string dhtFile = _e->getOption()->get(PREF_DHT_FILE_PATH);
+ std::string dhtFile =
+ getDownloadEngine()->getOption()->get(PREF_DHT_FILE_PATH);
getLogger()->info("Saving DHT routing table to %s.", dhtFile.c_str());
std::string tempFile = dhtFile;
@@ -142,7 +145,8 @@ void DHTAutoSaveCommand::setLocalNode(const SharedHandle<DHTNode>& localNode)
_localNode = localNode;
}
-void DHTAutoSaveCommand::setRoutingTable(const SharedHandle<DHTRoutingTable>& routingTable)
+void DHTAutoSaveCommand::setRoutingTable
+(const SharedHandle<DHTRoutingTable>& routingTable)
{
_routingTable = routingTable;
}
diff --git a/src/DHTBucketRefreshCommand.cc b/src/DHTBucketRefreshCommand.cc
index ab42e1c5..85ba9552 100644
--- a/src/DHTBucketRefreshCommand.cc
+++ b/src/DHTBucketRefreshCommand.cc
@@ -54,7 +54,10 @@ DHTBucketRefreshCommand::~DHTBucketRefreshCommand() {}
void DHTBucketRefreshCommand::preProcess()
{
- _exit = _e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested();
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
+ enableExit();
+ }
}
void DHTBucketRefreshCommand::process()
@@ -62,17 +65,20 @@ void DHTBucketRefreshCommand::process()
_taskQueue->addPeriodicTask1(_taskFactory->createBucketRefreshTask());
}
-void DHTBucketRefreshCommand::setRoutingTable(const SharedHandle<DHTRoutingTable>& routingTable)
+void DHTBucketRefreshCommand::setRoutingTable
+(const SharedHandle<DHTRoutingTable>& routingTable)
{
_routingTable = routingTable;
}
-void DHTBucketRefreshCommand::setTaskQueue(const SharedHandle<DHTTaskQueue>& taskQueue)
+void DHTBucketRefreshCommand::setTaskQueue
+(const SharedHandle<DHTTaskQueue>& taskQueue)
{
_taskQueue = taskQueue;
}
-void DHTBucketRefreshCommand::setTaskFactory(const SharedHandle<DHTTaskFactory>& taskFactory)
+void DHTBucketRefreshCommand::setTaskFactory
+(const SharedHandle<DHTTaskFactory>& taskFactory)
{
_taskFactory = taskFactory;
}
diff --git a/src/DHTPeerAnnounceCommand.cc b/src/DHTPeerAnnounceCommand.cc
index f2b81f8c..1aa16b41 100644
--- a/src/DHTPeerAnnounceCommand.cc
+++ b/src/DHTPeerAnnounceCommand.cc
@@ -54,7 +54,10 @@ DHTPeerAnnounceCommand::~DHTPeerAnnounceCommand() {}
void DHTPeerAnnounceCommand::preProcess()
{
- _exit = _e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested();
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
+ enableExit();
+ }
}
void DHTPeerAnnounceCommand::process()
@@ -66,7 +69,8 @@ void DHTPeerAnnounceCommand::process()
}
}
-void DHTPeerAnnounceCommand::setPeerAnnounceStorage(const SharedHandle<DHTPeerAnnounceStorage>& storage)
+void DHTPeerAnnounceCommand::setPeerAnnounceStorage
+(const SharedHandle<DHTPeerAnnounceStorage>& storage)
{
_peerAnnounceStorage = storage;
}
diff --git a/src/DHTTokenUpdateCommand.cc b/src/DHTTokenUpdateCommand.cc
index ea57e335..af80654a 100644
--- a/src/DHTTokenUpdateCommand.cc
+++ b/src/DHTTokenUpdateCommand.cc
@@ -55,7 +55,10 @@ DHTTokenUpdateCommand::~DHTTokenUpdateCommand() {}
void DHTTokenUpdateCommand::preProcess()
{
- _exit = _e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested();
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
+ enableExit();
+ }
}
void DHTTokenUpdateCommand::process()
diff --git a/src/HaveEraseCommand.cc b/src/HaveEraseCommand.cc
index 4fce7c58..0b560303 100644
--- a/src/HaveEraseCommand.cc
+++ b/src/HaveEraseCommand.cc
@@ -51,17 +51,20 @@ HaveEraseCommand::~HaveEraseCommand() {}
void HaveEraseCommand::preProcess()
{
- if(_e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested()) {
- _exit = true;
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
+ enableExit();
}
}
void HaveEraseCommand::process()
{
- size_t numLoop = _e->getRequestGroupMan()->countRequestGroup();
+ size_t numLoop =
+ getDownloadEngine()->getRequestGroupMan()->countRequestGroup();
for(size_t i = 0; i < numLoop; ++i) {
PieceStorageHandle ps =
- _e->getRequestGroupMan()->getRequestGroup(i)->getPieceStorage();
+ getDownloadEngine()->getRequestGroupMan()->getRequestGroup(i)->
+ getPieceStorage();
if(!ps.isNull()) {
ps->removeAdvertisedPiece(5);
}
diff --git a/src/TimeBasedCommand.h b/src/TimeBasedCommand.h
index dc5f0c38..488df5b7 100644
--- a/src/TimeBasedCommand.h
+++ b/src/TimeBasedCommand.h
@@ -44,7 +44,7 @@ class DownloadEngine;
class TimeBasedCommand : public Command
{
-protected:
+private:
DownloadEngine* _e;
/**
@@ -59,8 +59,23 @@ protected:
time_t _interval; // unit: sec
bool _routineCommand;
-private:
+
Timer _checkPoint;
+protected:
+ DownloadEngine* getDownloadEngine() const
+ {
+ return _e;
+ }
+
+ void enableExit()
+ {
+ _exit = true;
+ }
+
+ time_t getInterval() const
+ {
+ return _interval;
+ }
public:
/**
* preProcess() is called each time when excute() is called.
diff --git a/src/TimedHaltCommand.cc b/src/TimedHaltCommand.cc
index 1921466f..ee3250f2 100644
--- a/src/TimedHaltCommand.cc
+++ b/src/TimedHaltCommand.cc
@@ -54,22 +54,23 @@ TimedHaltCommand::~TimedHaltCommand() {}
void TimedHaltCommand::preProcess()
{
- if(_e->getRequestGroupMan()->downloadFinished() || _e->isHaltRequested()) {
- _exit = true;
+ if(getDownloadEngine()->getRequestGroupMan()->downloadFinished() ||
+ getDownloadEngine()->isHaltRequested()) {
+ enableExit();
}
}
void TimedHaltCommand::process()
{
- if(!_e->isHaltRequested()) {
- getLogger()->notice(MSG_TIME_HAS_PASSED, _interval);
+ if(!getDownloadEngine()->isHaltRequested()) {
+ getLogger()->notice(MSG_TIME_HAS_PASSED, getInterval());
if(_forceHalt) {
getLogger()->notice("This is emergency shutdown.");
- _e->requestForceHalt();
+ getDownloadEngine()->requestForceHalt();
} else {
- _e->requestHalt();
+ getDownloadEngine()->requestHalt();
}
- _exit = true;
+ enableExit();
}
}