summaryrefslogtreecommitdiff
path: root/src/MultiFileAllocationIterator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/MultiFileAllocationIterator.cc')
-rw-r--r--src/MultiFileAllocationIterator.cc43
1 files changed, 2 insertions, 41 deletions
diff --git a/src/MultiFileAllocationIterator.cc b/src/MultiFileAllocationIterator.cc
index 349d174f..1f541361 100644
--- a/src/MultiFileAllocationIterator.cc
+++ b/src/MultiFileAllocationIterator.cc
@@ -42,11 +42,9 @@ namespace aria2 {
MultiFileAllocationIterator::MultiFileAllocationIterator(MultiDiskAdaptor* diskAdaptor):
_diskAdaptor(diskAdaptor),
+ _entries(_diskAdaptor->diskWriterEntries),
_offset(0)
-{
- makeDiskWriterEntries(_entries, diskAdaptor->diskWriterEntries,
- diskAdaptor->getPieceLength());
-}
+{}
MultiFileAllocationIterator::~MultiFileAllocationIterator() {}
@@ -106,41 +104,4 @@ const DiskWriterEntries& MultiFileAllocationIterator::getDiskWriterEntries() con
return _entries;
}
-void MultiFileAllocationIterator::makeDiskWriterEntries
-(std::deque<SharedHandle<DiskWriterEntry> >& dwEntries,
- const DiskWriterEntries& srcEntries, size_t pieceLength) const
-{
- if(pieceLength == 0) {
- for(DiskWriterEntries::const_iterator itr = srcEntries.begin(); itr != srcEntries.end(); ++itr) {
- if((*itr)->getFileEntry()->isRequested()) {
- dwEntries.push_back(*itr);
- }
- }
- } else {
- DiskWriterEntries temp(srcEntries);
- {
- SharedHandle<FileEntry> f(new FileEntry());
- SharedHandle<DiskWriterEntry> e(new DiskWriterEntry(f));
- temp.push_front(e);
- }
- 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;
- }
- }
-}
-
} // namespace aria2