[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/network/ktorrent/libbtcore
From:       Joris Guisson <joris.guisson () gmail ! com>
Date:       2008-07-29 18:31:57
Message-ID: 1217356317.852959.30525.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 839295 by guisson:

Deleting data files is now done in a background job



 M  +2 -0      CMakeLists.txt  
 M  +2 -1      diskio/cache.h  
 M  +2 -2      diskio/chunkmanager.cpp  
 M  +1 -1      diskio/chunkmanager.h  
 A             diskio/deletedatafilesjob.cpp   [License: GPL (v2+)]
 A             diskio/deletedatafilesjob.h   [License: GPL (v2+)]
 M  +8 -3      diskio/multifilecache.cpp  
 M  +1 -1      diskio/multifilecache.h  
 M  +6 -2      diskio/singlefilecache.cpp  
 M  +1 -1      diskio/singlefilecache.h  


--- trunk/extragear/network/ktorrent/libbtcore/CMakeLists.txt #839294:839295
@@ -152,6 +152,7 @@
 	diskio/multifilecache.cpp
 	diskio/preallocationthread.cpp
 	diskio/movedatafilesjob.cpp
+	diskio/deletedatafilesjob.cpp
 
 	tracker/httptracker.cpp  
 	tracker/tracker.cpp  
@@ -294,6 +295,7 @@
 	./diskio/singlefilecache.h
 	./diskio/preallocationthread.h
 	./diskio/movedatafilesjob.h
+	./diskio/deletedatafilesjob.h
 	./diskio/chunkmanager.h
 	./diskio/dndfile.h
 	./diskio/chunk.h
--- trunk/extragear/network/ktorrent/libbtcore/diskio/cache.h #839294:839295
@@ -160,8 +160,9 @@
 		/**
 		 * Delete all data files, in case of multi file torrents
 		 * empty directories should also be deleted.
+		 * @return The job doing the delete
 		 */
-		virtual void deleteDataFiles() = 0;
+		virtual KJob* deleteDataFiles() = 0;
 		
 		/**
 		 * Move some files to a new location
--- trunk/extragear/network/ktorrent/libbtcore/diskio/chunkmanager.cpp #839294:839295
@@ -1211,9 +1211,9 @@
 		chunksLeft();
 	}
 	
-	void ChunkManager::deleteDataFiles()
+	KJob* ChunkManager::deleteDataFiles()
 	{
-		cache->deleteDataFiles();
+		return cache->deleteDataFiles();
 	}
 
 	Uint64 ChunkManager::diskUsage()
--- trunk/extragear/network/ktorrent/libbtcore/diskio/chunkmanager.h #839294:839295
@@ -326,7 +326,7 @@
 		void dndMissingFiles();
 		
 		/// Delete all data files 
-		void deleteDataFiles();
+		KJob* deleteDataFiles();
 		
 		/// Are all not deselected chunks downloaded.
 		bool completed() const;
--- trunk/extragear/network/ktorrent/libbtcore/diskio/multifilecache.cpp #839294:839295
@@ -36,6 +36,7 @@
 #include "dndfile.h"
 #include "preallocationthread.h"
 #include "movedatafilesjob.h"
+#include "deletedatafilesjob.h"
 #include <kdebug.h>
 
 
@@ -841,8 +842,9 @@
 		}
 	}
 	
-	void MultiFileCache::deleteDataFiles()
+	KJob* MultiFileCache::deleteDataFiles()
 	{
+		DeleteDataFilesJob* job = new DeleteDataFilesJob();
 		for (Uint32 i = 0;i < tor.getNumFiles();i++)
 		{
 			TorrentFile & tf = tor.getFile(i);
@@ -850,12 +852,15 @@
 			if (!tf.doNotDownload())
 			{
 				// first delete the file
-				bt::Delete(fpath);
+				job->addFile(fpath);
 			}
 			
 			// check for subdirectories
-			DeleteEmptyDirs(output_dir,tf.getUserModifiedPath());
+			job->addEmptyDirectoryCheck(output_dir,tf.getUserModifiedPath());
 		}
+		
+		job->start();
+		return job;
 	}
 	
 	Uint64 MultiFileCache::diskUsage()
--- trunk/extragear/network/ktorrent/libbtcore/diskio/multifilecache.h #839294:839295
@@ -61,7 +61,7 @@
 		virtual void changeOutputPath(const QString & outputpath);
 		virtual void preallocateDiskSpace(PreallocationThread* prealloc);
 		virtual bool hasMissingFiles(QStringList & sl);
-		virtual void deleteDataFiles();
+		virtual KJob* deleteDataFiles();
 		virtual Uint64 diskUsage();
 		virtual void loadFileMap();
 		virtual void saveFileMap();
--- trunk/extragear/network/ktorrent/libbtcore/diskio/singlefilecache.cpp #839294:839295
@@ -32,6 +32,7 @@
 #include "chunk.h"
 #include "cachefile.h"
 #include "preallocationthread.h"
+#include "deletedatafilesjob.h"
 
 
 namespace bt
@@ -250,9 +251,12 @@
 		return false;
 	}
 
-	void SingleFileCache::deleteDataFiles()
+	KJob* SingleFileCache::deleteDataFiles()
 	{
-		bt::Delete(output_file);
+		DeleteDataFilesJob* job = new DeleteDataFilesJob();
+		job->addFile(output_file);
+		job->start();
+		return job;
 	}
 
 	Uint64 SingleFileCache::diskUsage()
--- trunk/extragear/network/ktorrent/libbtcore/diskio/singlefilecache.h #839294:839295
@@ -56,7 +56,7 @@
 		virtual QString getOutputPath() const {return output_file;}
 		virtual void preallocateDiskSpace(PreallocationThread* prealloc);
 		virtual bool hasMissingFiles(QStringList & sl);
-		virtual void deleteDataFiles();
+		virtual KJob* deleteDataFiles();
 		virtual Uint64 diskUsage();
 		virtual void loadFileMap();
 		virtual void saveFileMap();
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic