X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=7a0ec9c673c219b6f1ceb5166eecad7e9c8c1466;hb=4d0705ef1773ee51717911bf5a1bc8f6ca71d339;hp=a6cbc8266c5eeb66492f7a0fffd3026aef98e928;hpb=916b45a47c8dce3c6837c12d4facb6eb572bb987;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 a6cbc82..7a0ec9c 100644
--- a/src/main/java/net/pterodactylus/sone/core/Core.java
+++ b/src/main/java/net/pterodactylus/sone/core/Core.java
@@ -52,6 +52,23 @@ import freenet.keys.FreenetURI;
*/
public class Core extends AbstractService {
+ /**
+ * Enumeration for the possible states of a {@link Sone}.
+ *
+ * @author David âBombeâ Roden
+ */
+ public enum SoneStatus {
+
+ /** The Sone is idle, i.e. not being downloaded or inserted. */
+ idle,
+
+ /** The Sone is currently being inserted. */
+ inserting,
+
+ /** The Sone is currently being downloaded. */
+ downloading,
+ }
+
/** The logger. */
private static final Logger logger = Logging.getLogger(Core.class);
@@ -70,6 +87,9 @@ public class Core extends AbstractService {
/** Sone inserters. */
private final Map soneInserters = new HashMap();
+ /** The Sonesâ statuses. */
+ private final Map soneStatuses = new HashMap();
+
/* various caches follow here. */
/** Cache for all known Sones. */
@@ -139,6 +159,7 @@ public class Core extends AbstractService {
if (!soneCache.containsKey(soneId)) {
Sone sone = new Sone(soneId);
soneCache.put(soneId, sone);
+ setSoneStatus(sone, SoneStatus.idle);
}
return soneCache.get(soneId);
}
@@ -169,6 +190,29 @@ public class Core extends AbstractService {
}
/**
+ * Returns the status of the given Sone.
+ *
+ * @param sone
+ * The Sone to get the status for
+ * @return The status of the Sone
+ */
+ public SoneStatus getSoneStatus(Sone sone) {
+ return soneStatuses.get(sone);
+ }
+
+ /**
+ * Sets the status of the Sone.
+ *
+ * @param sone
+ * The Sone to set the status for
+ * @param soneStatus
+ * The status of the Sone
+ */
+ public void setSoneStatus(Sone sone, SoneStatus soneStatus) {
+ soneStatuses.put(sone, soneStatus);
+ }
+
+ /**
* Creates a new post and adds it to the given Sone.
*
* @param sone