2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Added max-concurrent-downloads option to changeGlobalOption
	xml-rpc method.  Rewritten loop conditional in
	RequestGroupMan::fillRequestGroupFromReserver().
	* src/RequestGroupMan.cc
	* src/RequestGroupMan.h
	* src/XmlRpcMethod.cc
	* src/XmlRpcMethodImpl.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-05-30 14:28:18 +00:00
parent f7b774223f
commit a9189ee7d9
5 changed files with 26 additions and 3 deletions

View File

@ -1,3 +1,13 @@
2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added max-concurrent-downloads option to changeGlobalOption
xml-rpc method. Rewritten loop conditional in
RequestGroupMan::fillRequestGroupFromReserver().
* src/RequestGroupMan.cc
* src/RequestGroupMan.h
* src/XmlRpcMethod.cc
* src/XmlRpcMethodImpl.cc
2009-05-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Documented position parameter in man page.

View File

@ -405,11 +405,14 @@ static void createInitialCommand(const SharedHandle<RequestGroup>& requestGroup,
void RequestGroupMan::fillRequestGroupFromReserver(DownloadEngine* e)
{
RequestGroups temp;
removeStoppedGroup(e);
if(_maxSimultaneousDownloads <= _requestGroups.size()) {
return;
}
RequestGroups temp;
unsigned int count = 0;
for(int num = _maxSimultaneousDownloads-_requestGroups.size();
num > 0 && !_reservedGroups.empty(); --num) {
size_t num = _maxSimultaneousDownloads-_requestGroups.size();
while(count < num && !_reservedGroups.empty()) {
RequestGroupHandle groupToAdd = _reservedGroups.front();
_reservedGroups.pop_front();
try {

View File

@ -230,6 +230,11 @@ public:
{
return _maxOverallUploadSpeedLimit;
}
void setMaxSimultaneousDownloads(unsigned int max)
{
_maxSimultaneousDownloads = max;
}
};
typedef SharedHandle<RequestGroupMan> RequestGroupManHandle;

View File

@ -134,6 +134,7 @@ const std::vector<std::string>& listChangeableGlobalOptions()
static const std::string OPTIONS[] = {
PREF_MAX_OVERALL_UPLOAD_LIMIT,
PREF_MAX_OVERALL_DOWNLOAD_LIMIT,
PREF_MAX_CONCURRENT_DOWNLOADS,
};
static std::vector<std::string> options
(&OPTIONS[0], &OPTIONS[arrayLength(OPTIONS)]);

View File

@ -560,6 +560,10 @@ BDE ChangeGlobalOptionXmlRpcMethod::process
e->_requestGroupMan->setMaxOverallUploadSpeedLimit
(option->getAsInt(PREF_MAX_OVERALL_UPLOAD_LIMIT));
}
if(option->defined(PREF_MAX_CONCURRENT_DOWNLOADS)) {
e->_requestGroupMan->setMaxSimultaneousDownloads
(option->getAsInt(PREF_MAX_CONCURRENT_DOWNLOADS));
}
return BDE_OK;
}