summaryrefslogtreecommitdiff
path: root/src/DownloadEngineFactory.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-10-31 09:53:23 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-10-31 09:53:23 +0000
commit07dc5bdfee991bed813ae59457855c312c38da32 (patch)
treecb8f10e34859d185d9a86d5dee8739bcde43e716 /src/DownloadEngineFactory.cc
parenta71b642db16273fbee441da61ce67d873cc7cc14 (diff)
2009-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Throw exception if binding listening port is failed. Removed RequestGroupMan::getInitialCommand(). Use fillRequestGroupFromReserver() instead. Delete commands for RequestGroup which has errors when it is being added. * src/BtSetup.cc * src/DownloadEngine.cc * src/DownloadEngine.h * src/DownloadEngineFactory.cc * src/MultiUrlRequestInfo.cc * src/RequestGroupMan.cc * src/RequestGroupMan.h * test/RequestGroupManTest.cc
Diffstat (limited to 'src/DownloadEngineFactory.cc')
-rw-r--r--src/DownloadEngineFactory.cc26
1 files changed, 6 insertions, 20 deletions
diff --git a/src/DownloadEngineFactory.cc b/src/DownloadEngineFactory.cc
index 0f83a674..9841c44f 100644
--- a/src/DownloadEngineFactory.cc
+++ b/src/DownloadEngineFactory.cc
@@ -74,24 +74,11 @@ DownloadEngineFactory::DownloadEngineFactory():
_logger(LogFactory::getInstance()) {}
DownloadEngineHandle
-DownloadEngineFactory::newDownloadEngine(Option* op,
- const RequestGroups& requestGroups)
+DownloadEngineFactory::newDownloadEngine
+(Option* op, const RequestGroups& requestGroups)
{
- RequestGroups workingSet;
- RequestGroups reservedSet;
- const size_t MAX_CONCURRENT_DOWNLOADS = op->getAsInt(PREF_MAX_CONCURRENT_DOWNLOADS);
- if(MAX_CONCURRENT_DOWNLOADS < requestGroups.size()) {
- workingSet.insert(workingSet.end(),
- requestGroups.begin(),
- requestGroups.begin()+MAX_CONCURRENT_DOWNLOADS);
-
- reservedSet.insert(reservedSet.end(),
- requestGroups.begin()+MAX_CONCURRENT_DOWNLOADS,
- requestGroups.end());
- } else {
- workingSet = requestGroups;
- }
-
+ const size_t MAX_CONCURRENT_DOWNLOADS =
+ op->getAsInt(PREF_MAX_CONCURRENT_DOWNLOADS);
SharedHandle<EventPoll> eventPoll;
#ifdef HAVE_EPOLL
if(op->get(PREF_EVENT_POLL) == V_EPOLL) {
@@ -100,7 +87,7 @@ DownloadEngineFactory::newDownloadEngine(Option* op,
eventPoll = ep;
} else {
throw DL_ABORT_EX("Initializing EpollEventPoll failed."
- " Try --event-poll=select");
+ " Try --event-poll=select");
}
} else
#endif // HAVE_EPLL
@@ -113,9 +100,8 @@ DownloadEngineFactory::newDownloadEngine(Option* op,
e->option = op;
RequestGroupManHandle
- requestGroupMan(new RequestGroupMan(workingSet, MAX_CONCURRENT_DOWNLOADS,
+ requestGroupMan(new RequestGroupMan(requestGroups, MAX_CONCURRENT_DOWNLOADS,
op));
- requestGroupMan->addReservedGroup(reservedSet);
e->_requestGroupMan = requestGroupMan;
e->_fileAllocationMan.reset(new FileAllocationMan());
#ifdef ENABLE_MESSAGE_DIGEST