/* */ #include "CopyDiskAdaptor.h" #include "Util.h" CopyDiskAdaptor::CopyDiskAdaptor(DiskWriter* diskWriter):DiskAdaptor(diskWriter) {} CopyDiskAdaptor::~CopyDiskAdaptor() {} void CopyDiskAdaptor::onDownloadComplete() { closeFile(); fixFilename(); openFile(); } void CopyDiskAdaptor::fixFilename() { if(topDir != NULL) { topDir->createDir(storeDir, true); } long long int offset = 0; for(FileEntries::iterator itr = fileEntries.begin(); itr != fileEntries.end(); itr++) { if(!itr->extracted && itr->requested) { string dest = storeDir+"/"+itr->path; logger->info("writing file %s", dest.c_str()); Util::rangedFileCopy(dest, getFilePath(), offset, itr->length); itr->extracted = true; } offset += itr->length; } } string CopyDiskAdaptor::getFilePath() const { return storeDir+"/"+tempFilename; }