/* */ #ifndef D_FILE_ALLOCATION_ENTRY_H #define D_FILE_ALLOCATION_ENTRY_H #include "RequestGroupEntry.h" #include #include #include "ProgressAwareEntry.h" namespace aria2 { class FileAllocationIterator; class Command; class DownloadEngine; class FileAllocationEntry : public RequestGroupEntry, public ProgressAwareEntry { private: std::unique_ptr fileAllocationIterator_; public: FileAllocationEntry( RequestGroup* requestGroup, std::unique_ptr nextCommand = std::unique_ptr()); ~FileAllocationEntry(); virtual int64_t getCurrentLength() CXX11_OVERRIDE; virtual int64_t getTotalLength() CXX11_OVERRIDE; virtual bool finished() CXX11_OVERRIDE; void allocateChunk(); virtual void prepareForNextAction(std::vector>& commands, DownloadEngine* e) = 0; }; } // namespace aria2 #endif // D_FILE_ALLOCATION_ENTRY_H