mirror of https://github.com/zlatinb/muwire
wip on persisting downloads between restarts
parent
a7125963a7
commit
42621a2dfb
|
@ -194,6 +194,7 @@ public class Core {
|
|||
DownloadManager downloadManager = new DownloadManager(eventBus, i2pConnector, new File(home, "incompletes"), me)
|
||||
eventBus.register(UIDownloadEvent.class, downloadManager)
|
||||
eventBus.register(UILoadedEvent.class, downloadManager)
|
||||
eventBus.register(FileDownloadedEvent.class, downloadManager)
|
||||
|
||||
log.info("initializing upload manager")
|
||||
UploadManager uploadManager = new UploadManager(eventBus, fileManager)
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
package com.muwire.core.download
|
||||
|
||||
import com.muwire.core.connection.I2PConnector
|
||||
import com.muwire.core.files.FileDownloadedEvent
|
||||
|
||||
import net.i2p.data.Base64
|
||||
import net.i2p.data.Destination
|
||||
import net.i2p.util.ConcurrentHashSet
|
||||
|
||||
import com.muwire.core.EventBus
|
||||
import com.muwire.core.Persona
|
||||
|
@ -20,6 +22,8 @@ public class DownloadManager {
|
|||
private final File incompletes
|
||||
private final Persona me
|
||||
|
||||
private final Set<Downloader> downloaders = new ConcurrentHashSet<>()
|
||||
|
||||
public DownloadManager(EventBus eventBus, I2PConnector connector, File incompletes, Persona me) {
|
||||
this.eventBus = eventBus
|
||||
this.connector = connector
|
||||
|
@ -51,6 +55,8 @@ public class DownloadManager {
|
|||
def downloader = new Downloader(eventBus, this, me, e.target, size,
|
||||
infohash, pieceSize, connector, destinations,
|
||||
incompletes)
|
||||
downloaders.add(downloader)
|
||||
persistDownloaders()
|
||||
executor.execute({downloader.download()} as Runnable)
|
||||
eventBus.publish(new DownloadStartedEvent(downloader : downloader))
|
||||
}
|
||||
|
@ -62,4 +68,12 @@ public class DownloadManager {
|
|||
void onUILoadedEvent(UILoadedEvent e) {
|
||||
// TODO: load downloads here
|
||||
}
|
||||
|
||||
void onFileDownloadedEvent(FileDownloadedEvent e) {
|
||||
downloaders.remove(e.downloader)
|
||||
persistDownloaders()
|
||||
}
|
||||
private void persistDownloaders() {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -205,7 +205,8 @@ public class Downloader {
|
|||
if (downloaded.isComplete() && !eventFired) {
|
||||
piecesFile.delete()
|
||||
eventFired = true
|
||||
eventBus.publish(new FileDownloadedEvent(downloadedFile : new DownloadedFile(file, infoHash, pieceSize, Collections.emptySet())))
|
||||
eventBus.publish(new FileDownloadedEvent(downloadedFile : new DownloadedFile(file, infoHash, pieceSize, Collections.emptySet())),
|
||||
downloader : Downloader.this)
|
||||
}
|
||||
endpoint?.close()
|
||||
}
|
||||
|
|
|
@ -2,10 +2,11 @@ package com.muwire.core.files
|
|||
|
||||
import com.muwire.core.DownloadedFile
|
||||
import com.muwire.core.Event
|
||||
import com.muwire.core.download.Downloader
|
||||
|
||||
import net.i2p.data.Destination
|
||||
|
||||
class FileDownloadedEvent extends Event {
|
||||
|
||||
Downloader downloader
|
||||
DownloadedFile downloadedFile
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue