From: David ‘Bombe’ Roden Date: Sat, 16 Oct 2010 01:42:22 +0000 (+0200) Subject: Don’t watch local Sones for updates, we already have those. X-Git-Tag: 0.1-RC1~295 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=23beb35ac87fdb97382a59d5365dd83a5258897b Don’t watch local Sones for updates, we already have those. --- diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 3aab417..8570e9a 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -135,6 +135,7 @@ public class Core extends AbstractService { public Sone getSone(String soneId) { if (!soneCache.containsKey(soneId)) { Sone sone = new Sone(soneId); + soneDownloader.addSone(sone); soneCache.put(soneId, sone); } return soneCache.get(soneId); @@ -218,7 +219,7 @@ public class Core extends AbstractService { if (localSones.add(sone)) { SoneInserter soneInserter = new SoneInserter(freenetInterface, sone); soneInserter.start(); - soneDownloader.addSone(sone); + soneDownloader.removeSone(sone); soneInserters.put(sone, soneInserter); } } diff --git a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java index 193d328..4d39568 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneDownloader.java @@ -89,6 +89,18 @@ public class SoneDownloader extends AbstractService { } /** + * Removes the given Sone from the downloader. + * + * @param sone + * The Sone to stop watching + */ + public void removeSone(Sone sone) { + if (sones.remove(sone)) { + freenetInterface.unregisterUsk(sone); + } + } + + /** * Fetches the updated Sone. This method is a callback method for * {@link FreenetInterface#registerUsk(Sone, SoneDownloader)}. *