WIP
[jSite2.git] / src / net / pterodactylus / jsite / core / CoreImpl.java
index f3ac5c0..682199e 100644 (file)
@@ -20,6 +20,7 @@
 package net.pterodactylus.jsite.core;
 
 import java.io.IOException;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -264,6 +265,33 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
                }
        }
 
+       /**
+        * Notifies all listeners that a request progressed.
+        * 
+        * @param node
+        *            The node that runs the request
+        * @param request
+        *            The request
+        * @param totalBlocks
+        *            The total number of blocks
+        * @param requiredBlocks
+        *            The number of required blocks
+        * @param successfulBlocks
+        *            The number of successful blocks
+        * @param failedBlocks
+        *            The number of failed blocks
+        * @param fatallyFailedBlocks
+        *            The number of fatally failed blocks
+        * @param finalizedTotal
+        *            <code>true</code> if the total number of blocks in final,
+        *            <code>false</code> otherwise
+        */
+       private void fireRequestProgressed(Node node, Request request, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal) {
+               for (CoreListener coreListener: coreListeners) {
+                       coreListener.requestProgressed(request, totalBlocks, requiredBlocks, successfulBlocks, failedBlocks, fatallyFailedBlocks, finalizedTotal);
+               }
+       }
+
        //
        // ACCESSORS
        //
@@ -375,7 +403,7 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
        /**
         * {@inheritDoc}
         */
-       public void addNode(Node node) {
+       public void addNode(Node node) throws UnknownHostException {
                nodeManager.addNode(node);
                fireNodeAdded(node);
        }
@@ -393,7 +421,6 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
         */
        public void connectToNode(Node node) {
                fireNodeConnecting(node);
-               nodeManager.addNode(node);
                nodeManager.connect(node);
        }
 
@@ -467,4 +494,12 @@ public class CoreImpl implements Core, NodeListener, RequestListener {
                fireRequestAdded(node, request);
        }
 
+       /**
+        * @see net.pterodactylus.jsite.core.RequestListener#requestProgressed(net.pterodactylus.jsite.core.Node,
+        *      net.pterodactylus.jsite.core.Request, int, int, int, int, int,
+        *      boolean)
+        */
+       public void requestProgressed(Node node, Request request, int totalBlocks, int requiredBlocks, int successfulBlocks, int failedBlocks, int fatallyFailedBlocks, boolean finalizedTotal) {
+       fireRequestProgressed(node, request, totalBlocks, requiredBlocks, successfulBlocks, failedBlocks, fatallyFailedBlocks, finalizedTotal);
+    }
 }