/* */ #ifndef D_MULTI_FILE_ALLOCATION_ITERATOR_H #define D_MULTI_FILE_ALLOCATION_ITERATOR_H #include "FileAllocationIterator.h" #include #include #include "MultiDiskAdaptor.h" namespace aria2 { class DiskWriterEntry; class MultiFileAllocationIterator : public FileAllocationIterator { private: MultiDiskAdaptor* diskAdaptor_; DiskWriterEntries::const_iterator entryItr_; std::shared_ptr diskWriter_; std::unique_ptr fileAllocationIterator_; public: MultiFileAllocationIterator(MultiDiskAdaptor* diskAdaptor); virtual ~MultiFileAllocationIterator(); virtual void allocateChunk() CXX11_OVERRIDE; virtual bool finished() CXX11_OVERRIDE; virtual int64_t getCurrentLength() CXX11_OVERRIDE; virtual int64_t getTotalLength() CXX11_OVERRIDE; const DiskWriterEntries& getDiskWriterEntries() const; }; } // namespace aria2 #endif // D_MULTI_FILE_ALLOCATION_ITERATOR_H