/* */ #include "SingleFileDownloadContext.h" #include "FileEntry.h" namespace aria2 { SingleFileDownloadContext::SingleFileDownloadContext(int32_t pieceLength, int64_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 != "") { _fileEntry->setPath(_ufilename); } else if(_filename != "") { _fileEntry->setPath(_filename); } else { _fileEntry->setPath("index.html"); } } const std::deque& SingleFileDownloadContext::getPieceHashes() const { return _pieceHashes; } int64_t SingleFileDownloadContext::getTotalLength() const { return _fileEntry->getLength(); } FileEntries SingleFileDownloadContext::getFileEntries() const { FileEntries fs; fs.push_back(_fileEntry); return fs; } int32_t SingleFileDownloadContext::getNumPieces() const { return (_fileEntry->getLength()+_pieceLength-1)/_pieceLength; } std::string SingleFileDownloadContext::getActualBasePath() const { return _dir+"/"+_fileEntry->getPath(); } void SingleFileDownloadContext::setTotalLength(int64_t totalLength) { _fileEntry->setLength(totalLength); } } // namespace aria2