mirror of https://github.com/aria2/aria2
2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Refactored RequestGroupMan::changeReservedGroupPosition() * src/RequestGroupMan.ccpull/1/head
parent
55f652882f
commit
ace9f30d49
|
@ -1,3 +1,8 @@
|
|||
2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Refactored RequestGroupMan::changeReservedGroupPosition()
|
||||
* src/RequestGroupMan.cc
|
||||
|
||||
2009-12-23 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Updated the description for aria2.addTorrent XML-RPC method.
|
||||
|
|
|
@ -184,12 +184,12 @@ size_t RequestGroupMan::changeReservedGroupPosition
|
|||
(StringFormat("GID#%d not found in the waiting queue.", gid).str());
|
||||
}
|
||||
SharedHandle<RequestGroup> rg = *i;
|
||||
const size_t maxPos = _reservedGroups.size()-1;
|
||||
if(how == POS_SET) {
|
||||
_reservedGroups.erase(i);
|
||||
if(pos < 0) {
|
||||
pos = 0;
|
||||
} else if(pos > 0) {
|
||||
pos = std::min(_reservedGroups.size(), (size_t)pos);
|
||||
pos = std::min(maxPos, (size_t)pos);
|
||||
}
|
||||
} else if(how == POS_CUR) {
|
||||
size_t abspos = std::distance(_reservedGroups.begin(), i);
|
||||
|
@ -202,17 +202,18 @@ size_t RequestGroupMan::changeReservedGroupPosition
|
|||
} else {
|
||||
pos = abspos;
|
||||
}
|
||||
_reservedGroups.erase(i);
|
||||
} else if(how == POS_END) {
|
||||
_reservedGroups.erase(i);
|
||||
if(pos >= 0) {
|
||||
pos = _reservedGroups.size();
|
||||
pos = maxPos;
|
||||
} else {
|
||||
pos =
|
||||
_reservedGroups.size()-std::min(_reservedGroups.size(), (size_t)-pos);
|
||||
pos = maxPos-std::min(maxPos, (size_t)-pos);
|
||||
}
|
||||
}
|
||||
_reservedGroups.insert(_reservedGroups.begin()+pos, rg);
|
||||
if(std::distance(_reservedGroups.begin(), i) < pos) {
|
||||
std::rotate(i, i+1, _reservedGroups.begin()+pos+1);
|
||||
} else {
|
||||
std::rotate(_reservedGroups.begin()+pos, i, i+1);
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue