-public class RequestManager implements NodeListener, HighLevelProgressListener {
-
- /** Logger. */
- private static final Logger logger = Logging.getLogger(RequestManager.class.getName());
-
- /** Request listeners. */
- private List<RequestListener> requestListeners = Collections.synchronizedList(new ArrayList<RequestListener>());
-
- /** The node manager. */
- private NodeManager nodeManager;
-
- /** Request lists for all nodes. */
- @SuppressWarnings("unused")
- private Map<Node, Set<Request>> nodeRequests = Collections.synchronizedMap(new HashMap<Node, Set<Request>>());
-
- //
- // EVENT MANAGEMENT
- //
-
- /**
- * Adds a request listener.
- *
- * @param requestListener
- * The request listener to add
- */
- public void addRequestListener(RequestListener requestListener) {
- requestListeners.add(requestListener);
- }
-
- /**
- * Removes a request listener.
- *
- * @param requestListener
- * The request listener to remove
- */
- public void removeRequestListener(RequestListener requestListener) {
- requestListeners.remove(requestListener);
- }
-
- /**
- * Notifies all listeners that a request was added.
- *
- * @param node
- * The node that added the request
- * @param request
- * The request that was added
- */
- private void fireRequestAdded(Node node, Request request) {
- for (RequestListener requestListener: requestListeners) {
- requestListener.requestAdded(node, request);
- }
- }
-
- /**
- * 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 (RequestListener requestListener: requestListeners) {
- requestListener.requestProgressed(node, request, totalBlocks, requiredBlocks, successfulBlocks, failedBlocks, fatallyFailedBlocks, finalizedTotal);
- }
- }
-
- //
- // ACCESSORS
- //
-
- /**
- * Sets the node manager to use.
- *
- * @param nodeManager
- * The node manager
- */
- public void setNodeManager(NodeManager nodeManager) {
- this.nodeManager = nodeManager;
- }