diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-05-12 11:51:09 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-05-12 11:51:09 +0000 |
| commit | 6ae07106d3c1d3134c4337803c02e324accce19b (patch) | |
| tree | e5e603a32e1be89a149bd5e0bd36c6c919ba722a /src/MultiFileAllocationIterator.cc | |
| parent | 3da60af41e45a5adc0224d66683c3fad7fa2841c (diff) | |
2008-05-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Changed method signature:
MultiFileAllocationIterator::makeDiskWriterEntries
* src/MultiFileAllocationIterator.cc
* src/MultiFileAllocationIterator.h
Diffstat (limited to 'src/MultiFileAllocationIterator.cc')
| -rw-r--r-- | src/MultiFileAllocationIterator.cc | 58 |
1 files changed, 29 insertions, 29 deletions
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<SharedHandle<DiskWriterEntry> >& 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<FileEntry> f(new FileEntry()); - SharedHandle<DiskWriterEntry> 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<FileEntry> f(new FileEntry()); + SharedHandle<DiskWriterEntry> 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 |
