X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=fbbb166012a29fbad8350d555e808a70a204dbcc;hb=ca4a41282673af46640e423473772444dea4f3c6;hp=76881ef78a6cf408c93236784b790979f3371dce;hpb=0f1d38f9011a73939437b6158b8c8bdd1a3dc5eb;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index 76881ef..fbbb166 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -59,6 +59,9 @@ public class Core extends AbstractService { */ public enum SoneStatus { + /** The Sone is unknown, i.e. not yet downloaded. */ + unknown, + /** The Sone is idle, i.e. not being downloaded or inserted. */ idle, @@ -105,7 +108,7 @@ public class Core extends AbstractService { * Creates a new core. */ public Core() { - super("Sone Core"); + super("Sone Core", false); } // @@ -159,7 +162,7 @@ public class Core extends AbstractService { if (!soneCache.containsKey(soneId)) { Sone sone = new Sone(soneId); soneCache.put(soneId, sone); - setSoneStatus(sone, SoneStatus.idle); + setSoneStatus(sone, SoneStatus.unknown); } return soneCache.get(soneId); } @@ -302,6 +305,7 @@ public class Core extends AbstractService { */ public void addLocalSone(Sone sone) { if (localSones.add(sone)) { + setSoneStatus(sone, SoneStatus.idle); SoneInserter soneInserter = new SoneInserter(this, freenetInterface, sone); soneInserter.start(); soneInserters.put(sone, soneInserter); @@ -443,7 +447,7 @@ public class Core extends AbstractService { addSone(parsedSone); } } finally { - setSoneStatus(sone, SoneStatus.idle); + setSoneStatus(sone, (sone.getTime() == 0) ? SoneStatus.unknown : SoneStatus.idle); } } }, "Sone Downloader").start(); @@ -518,6 +522,18 @@ public class Core extends AbstractService { return replies; } + /** + * Deletes the given reply. It is removed from its Sone and from the reply + * cache. + * + * @param reply + * The reply to remove + */ + public void deleteReply(Reply reply) { + reply.getSone().removeReply(reply); + replyCache.remove(reply.getId()); + } + // // SERVICE METHODS //