From 6ae07106d3c1d3134c4337803c02e324accce19b Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 12 May 2008 11:51:09 +0000 Subject: 2008-05-12 Tatsuhiro Tsujikawa Changed method signature: MultiFileAllocationIterator::makeDiskWriterEntries * src/MultiFileAllocationIterator.cc * src/MultiFileAllocationIterator.h --- src/MultiFileAllocationIterator.cc | 58 +++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'src/MultiFileAllocationIterator.cc') diff --git a/src/MultiFileAllocationIterator.cc b/src/MultiFileAllocationIterator.cc index 0af7628b..680a7bc0 100644 --- a/src/MultiFileAllocationIterator.cc +++ b/src/MultiFileAllocationIterator.cc @@ -42,10 +42,11 @@ namespace aria2 { MultiFileAllocationIterator::MultiFileAllocationIterator(MultiDiskAdaptor* diskAdaptor): _diskAdaptor(diskAdaptor), - _entries(makeDiskWriterEntries(diskAdaptor->diskWriterEntries, - diskAdaptor->getPieceLength())), _offset(0) -{} +{ + makeDiskWriterEntries(_entries, diskAdaptor->diskWriterEntries, + diskAdaptor->getPieceLength()); +} MultiFileAllocationIterator::~MultiFileAllocationIterator() {} @@ -101,42 +102,41 @@ const DiskWriterEntries& MultiFileAllocationIterator::getDiskWriterEntries() con return _entries; } -DiskWriterEntries MultiFileAllocationIterator::makeDiskWriterEntries(const DiskWriterEntries& srcEntries, size_t pieceLength) const +void MultiFileAllocationIterator::makeDiskWriterEntries +(std::deque >& dwEntries, + const DiskWriterEntries& srcEntries, size_t pieceLength) const { if(pieceLength == 0) { - DiskWriterEntries entries; for(DiskWriterEntries::const_iterator itr = srcEntries.begin(); itr != srcEntries.end(); ++itr) { if((*itr)->getFileEntry()->isRequested()) { - entries.push_back(*itr); + dwEntries.push_back(*itr); } } - return entries; - } - DiskWriterEntries temp(srcEntries); - { - SharedHandle f(new FileEntry()); - SharedHandle e(new DiskWriterEntry(f)); - temp.push_front(e); - } - DiskWriterEntries entries; - DiskWriterEntries::const_iterator done = temp.begin(); - for(DiskWriterEntries::const_iterator itr = temp.begin()+1; itr != temp.end(); ++itr) { - const FileEntryHandle& fileEntry = (*itr)->getFileEntry(); - if(!fileEntry->isRequested()) { - continue; + } else { + DiskWriterEntries temp(srcEntries); + { + SharedHandle f(new FileEntry()); + SharedHandle e(new DiskWriterEntry(f)); + temp.push_front(e); } - off_t pieceStartOffset = (fileEntry->getOffset()/pieceLength)*pieceLength; - for(DiskWriterEntries::const_iterator i = itr-1; i != done; --i) { - if((uint64_t)pieceStartOffset < (*i)->getFileEntry()->getOffset()+(*i)->getFileEntry()->getLength()) { - entries.push_back(*i); - } else { - break; + DiskWriterEntries::const_iterator done = temp.begin(); + for(DiskWriterEntries::const_iterator itr = temp.begin()+1; itr != temp.end(); ++itr) { + const FileEntryHandle& fileEntry = (*itr)->getFileEntry(); + if(!fileEntry->isRequested()) { + continue; + } + off_t pieceStartOffset = (fileEntry->getOffset()/pieceLength)*pieceLength; + for(DiskWriterEntries::const_iterator i = itr-1; i != done; --i) { + if((uint64_t)pieceStartOffset < (*i)->getFileEntry()->getOffset()+(*i)->getFileEntry()->getLength()) { + dwEntries.push_back(*i); + } else { + break; + } } + dwEntries.push_back(*itr); + done = itr; } - entries.push_back(*itr); - done = itr; } - return entries; } } // namespace aria2 -- cgit