mirror of https://github.com/zlatinb/muwire
remove HOPELESS downloads from the download list via an event
parent
10bd566d58
commit
3387d22a6c
|
@ -23,6 +23,7 @@ import com.muwire.core.connection.I2PAcceptor
|
||||||
import com.muwire.core.connection.I2PConnector
|
import com.muwire.core.connection.I2PConnector
|
||||||
import com.muwire.core.connection.LeafConnectionManager
|
import com.muwire.core.connection.LeafConnectionManager
|
||||||
import com.muwire.core.connection.UltrapeerConnectionManager
|
import com.muwire.core.connection.UltrapeerConnectionManager
|
||||||
|
import com.muwire.core.download.DownloadHopelessEvent
|
||||||
import com.muwire.core.download.DownloadManager
|
import com.muwire.core.download.DownloadManager
|
||||||
import com.muwire.core.download.SourceDiscoveredEvent
|
import com.muwire.core.download.SourceDiscoveredEvent
|
||||||
import com.muwire.core.download.SourceVerifiedEvent
|
import com.muwire.core.download.SourceVerifiedEvent
|
||||||
|
@ -391,6 +392,7 @@ public class Core {
|
||||||
eventBus.register(SourceDiscoveredEvent.class, downloadManager)
|
eventBus.register(SourceDiscoveredEvent.class, downloadManager)
|
||||||
eventBus.register(UIDownloadPausedEvent.class, downloadManager)
|
eventBus.register(UIDownloadPausedEvent.class, downloadManager)
|
||||||
eventBus.register(UIDownloadResumedEvent.class, downloadManager)
|
eventBus.register(UIDownloadResumedEvent.class, downloadManager)
|
||||||
|
eventBus.register(DownloadHopelessEvent.class, downloadManager)
|
||||||
|
|
||||||
log.info("initializing upload manager")
|
log.info("initializing upload manager")
|
||||||
uploadManager = new UploadManager(eventBus, fileManager, meshManager, downloadManager, persisterFolderService, props)
|
uploadManager = new UploadManager(eventBus, fileManager, meshManager, downloadManager, persisterFolderService, props)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.muwire.core.download
|
||||||
|
|
||||||
|
import com.muwire.core.Event
|
||||||
|
|
||||||
|
class DownloadHopelessEvent extends Event {
|
||||||
|
Downloader downloader
|
||||||
|
}
|
|
@ -112,6 +112,11 @@ public class DownloadManager {
|
||||||
persistDownloaders()
|
persistDownloaders()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onDownloadHopelessEvent(DownloadHopelessEvent e) {
|
||||||
|
downloaders.remove(e.downloader.infoHash)
|
||||||
|
persistDownloaders()
|
||||||
|
}
|
||||||
|
|
||||||
public void onUIDownloadPausedEvent(UIDownloadPausedEvent e) {
|
public void onUIDownloadPausedEvent(UIDownloadPausedEvent e) {
|
||||||
persistDownloaders()
|
persistDownloaders()
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,6 +66,7 @@ public class Downloader {
|
||||||
|
|
||||||
private volatile boolean cancelled, paused
|
private volatile boolean cancelled, paused
|
||||||
private final AtomicBoolean eventFired = new AtomicBoolean()
|
private final AtomicBoolean eventFired = new AtomicBoolean()
|
||||||
|
private final AtomicBoolean hopelessEventFired = new AtomicBoolean()
|
||||||
private boolean piecesFileClosed
|
private boolean piecesFileClosed
|
||||||
|
|
||||||
private final AtomicLong dataSinceLastRead = new AtomicLong(0)
|
private final AtomicLong dataSinceLastRead = new AtomicLong(0)
|
||||||
|
@ -436,6 +437,8 @@ public class Downloader {
|
||||||
} catch (Exception bad) {
|
} catch (Exception bad) {
|
||||||
log.log(Level.WARNING,"Exception while downloading",DataUtil.findRoot(bad))
|
log.log(Level.WARNING,"Exception while downloading",DataUtil.findRoot(bad))
|
||||||
markFailed(destination)
|
markFailed(destination)
|
||||||
|
if (!hasLiveSources() && hopelessEventFired.compareAndSet(false, true))
|
||||||
|
eventBus.publish(new DownloadHopelessEvent(downloader : Downloader.this))
|
||||||
} finally {
|
} finally {
|
||||||
writePieces()
|
writePieces()
|
||||||
currentState = WorkerState.FINISHED
|
currentState = WorkerState.FINISHED
|
||||||
|
|
Loading…
Reference in New Issue