/* */ #include "SingleFileDownloadContext.h" #include "FileEntry.h" namespace aria2 { const std::string SingleFileDownloadContext::DEFAULT_FILENAME("index.html"); SingleFileDownloadContext::SingleFileDownloadContext(size_t pieceLength, uint64_t totalLength, const std::string& filename, const std::string& ufilename): _pieceLength(pieceLength), _fileEntry(new FileEntry(filename, totalLength, 0)), _filename(filename), _ufilename(ufilename) { updateFileEntry(); } void SingleFileDownloadContext::updateFileEntry() { if(!_ufilename.empty()) { _fileEntry->setPath(_ufilename); } else if(!_filename.empty()) { _fileEntry->setPath(_filename); } else { _fileEntry->setPath(DEFAULT_FILENAME); } } const std::deque& SingleFileDownloadContext::getPieceHashes() const { return _pieceHashes; } uint64_t SingleFileDownloadContext::getTotalLength() const { return _fileEntry->getLength(); } FileEntries SingleFileDownloadContext::getFileEntries() const { FileEntries fs; fs.push_back(_fileEntry); return fs; } size_t SingleFileDownloadContext::getNumPieces() const { return (_fileEntry->getLength()+_pieceLength-1)/_pieceLength; } std::string SingleFileDownloadContext::getActualBasePath() const { return _dir+"/"+_fileEntry->getPath(); } void SingleFileDownloadContext::setTotalLength(uint64_t totalLength) { _fileEntry->setLength(totalLength); } const std::string& SingleFileDownloadContext::getName() const { return _fileEntry->getPath(); } } // namespace aria2