mirror of https://github.com/aria2/aria2
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature: SegmentMan::getInFlightSegment * src/AbstractCommand.cc * src/SegmentMan.cc * src/SegmentMan.h * test/SegmentManTest.ccpull/1/head
parent
83731bab5c
commit
82e0092b19
|
@ -1,3 +1,12 @@
|
||||||
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
|
Changed method signature:
|
||||||
|
SegmentMan::getInFlightSegment
|
||||||
|
* src/AbstractCommand.cc
|
||||||
|
* src/SegmentMan.cc
|
||||||
|
* src/SegmentMan.h
|
||||||
|
* test/SegmentManTest.cc
|
||||||
|
|
||||||
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
2008-05-11 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
|
||||||
|
|
||||||
Changed method signature:
|
Changed method signature:
|
||||||
|
|
|
@ -125,7 +125,8 @@ bool AbstractCommand::execute() {
|
||||||
(!checkSocketIsReadable && !checkSocketIsWritable && !nameResolverCheck)) {
|
(!checkSocketIsReadable && !checkSocketIsWritable && !nameResolverCheck)) {
|
||||||
checkPoint.reset();
|
checkPoint.reset();
|
||||||
if(!_requestGroup->getPieceStorage().isNull()) {
|
if(!_requestGroup->getPieceStorage().isNull()) {
|
||||||
_segments = _requestGroup->getSegmentMan()->getInFlightSegment(cuid);
|
_segments.clear();
|
||||||
|
_requestGroup->getSegmentMan()->getInFlightSegment(_segments, cuid);
|
||||||
size_t maxSegments;
|
size_t maxSegments;
|
||||||
if(req->isPipeliningEnabled()) {
|
if(req->isPipeliningEnabled()) {
|
||||||
maxSegments = e->option->getAsInt(PREF_MAX_HTTP_PIPELINING);
|
maxSegments = e->option->getAsInt(PREF_MAX_HTTP_PIPELINING);
|
||||||
|
|
|
@ -147,17 +147,16 @@ SegmentEntryHandle SegmentMan::findSlowerSegmentEntry(const PeerStatHandle& peer
|
||||||
return slowSegmentEntry;
|
return slowSegmentEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
Segments SegmentMan::getInFlightSegment(int32_t cuid)
|
void SegmentMan::getInFlightSegment(std::deque<SharedHandle<Segment> >& segments,
|
||||||
|
int32_t cuid)
|
||||||
{
|
{
|
||||||
Segments temp;
|
|
||||||
for(SegmentEntries::iterator itr = usedSegmentEntries.begin();
|
for(SegmentEntries::iterator itr = usedSegmentEntries.begin();
|
||||||
itr != usedSegmentEntries.end(); ++itr) {
|
itr != usedSegmentEntries.end(); ++itr) {
|
||||||
const SegmentEntryHandle& segmentEntry = *itr;
|
const SegmentEntryHandle& segmentEntry = *itr;
|
||||||
if(segmentEntry->cuid == cuid) {
|
if(segmentEntry->cuid == cuid) {
|
||||||
temp.push_back(segmentEntry->segment);
|
segments.push_back(segmentEntry->segment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return temp;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SegmentHandle SegmentMan::getSegment(int32_t cuid) {
|
SegmentHandle SegmentMan::getSegment(int32_t cuid) {
|
||||||
|
|
|
@ -110,11 +110,11 @@ public:
|
||||||
bool downloadFinished() const;
|
bool downloadFinished() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a vacant segment.
|
* Fill segments which are assigned to the command whose CUID is cuid.
|
||||||
* If there is no vacant segment, then returns a segment instance whose
|
* This function doesn't clear passed segments.
|
||||||
* isNull call is true.
|
|
||||||
*/
|
*/
|
||||||
std::deque<SharedHandle<Segment> > getInFlightSegment(int32_t cuid);
|
void getInFlightSegment(std::deque<SharedHandle<Segment> >& segments,
|
||||||
|
int32_t cuid);
|
||||||
|
|
||||||
SharedHandle<Segment> getSegment(int32_t cuid);
|
SharedHandle<Segment> getSegment(int32_t cuid);
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,8 @@ void SegmentManTest::testCompleteSegment()
|
||||||
seg->updateWrittenLength(pieceLength);
|
seg->updateWrittenLength(pieceLength);
|
||||||
segmentMan.completeSegment(1, seg);
|
segmentMan.completeSegment(1, seg);
|
||||||
|
|
||||||
std::deque<SharedHandle<Segment> > segments = segmentMan.getInFlightSegment(1);
|
std::deque<SharedHandle<Segment> > segments;
|
||||||
|
segmentMan.getInFlightSegment(segments, 1);
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)2, segments.size());
|
CPPUNIT_ASSERT_EQUAL((size_t)2, segments.size());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)0, segments[0]->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)0, segments[0]->getIndex());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)2, segments[1]->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)2, segments[1]->getIndex());
|
||||||
|
|
Loading…
Reference in New Issue