Add FCP interface to core.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 93caddd..c5f5564 100644 (file)
@@ -37,6 +37,7 @@ import net.pterodactylus.sone.data.Profile;
 import net.pterodactylus.sone.data.Profile.Field;
 import net.pterodactylus.sone.data.Reply;
 import net.pterodactylus.sone.data.Sone;
+import net.pterodactylus.sone.fcp.FcpInterface;
 import net.pterodactylus.sone.freenet.wot.Identity;
 import net.pterodactylus.sone.freenet.wot.IdentityListener;
 import net.pterodactylus.sone.freenet.wot.IdentityManager;
@@ -109,6 +110,9 @@ public class Core implements IdentityListener, UpdateListener {
        /** The update checker. */
        private final UpdateChecker updateChecker;
 
+       /** The FCP interface. */
+       private volatile FcpInterface fcpInterface;
+
        /** Whether the core has been stopped. */
        private volatile boolean stopped;
 
@@ -251,6 +255,16 @@ public class Core implements IdentityListener, UpdateListener {
        }
 
        /**
+        * Sets the FCP interface to use.
+        *
+        * @param fcpInterface
+        *            The FCP interface to use
+        */
+       public void setFcpInterface(FcpInterface fcpInterface) {
+               this.fcpInterface = fcpInterface;
+       }
+
+       /**
         * Returns the status of the given Sone.
         *
         * @param sone
@@ -1493,6 +1507,10 @@ public class Core implements IdentityListener, UpdateListener {
                synchronized (posts) {
                        posts.remove(post.getId());
                }
+               synchronized (newPosts) {
+                       markPostKnown(post);
+                       knownPosts.remove(post.getId());
+               }
                saveSone(post.getSone());
        }
 
@@ -1618,6 +1636,10 @@ public class Core implements IdentityListener, UpdateListener {
                synchronized (replies) {
                        replies.remove(reply.getId());
                }
+               synchronized (newReplies) {
+                       markReplyKnown(reply);
+                       knownReplies.remove(reply.getId());
+               }
                sone.removeReply(reply);
                saveSone(sone);
        }