import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.pterodactylus.fcp.highlevel.FcpClient;
import net.pterodactylus.fcp.highlevel.FcpException;
-import net.pterodactylus.fcp.highlevel.Request;
import net.pterodactylus.jsite.util.IdGenerator;
import net.pterodactylus.util.number.Hex;
/** The logger. */
private static final Logger logger = Logger.getLogger(RequestManager.class.getName());
+ /** Request event manager. */
+ private final RequestListenerManager requestListenerManager = new RequestListenerManager();
+
/** The node manager. */
private final NodeManager nodeManager;
}
//
+ // LISTENER MANAGEMENT
+ //
+
+ /**
+ * Adds the given request listener to the list of registered listeners.
+ *
+ * @see RequestListenerManager#addListener(RequestListener)
+ * @param requestListener
+ * The request listener to add
+ */
+ public void addRequestListener(RequestListener requestListener) {
+ requestListenerManager.addListener(requestListener);
+ }
+
+ /**
+ * Removes the given request listener from the list of registered listeners.
+ *
+ * @see RequestListenerManager#removeListener(RequestListener)
+ * @param requestListener
+ * The request listener to remove
+ */
+ public void removeRequestListener(RequestListener requestListener) {
+ requestListenerManager.removeListener(requestListener);
+ }
+
+ //
// ACTIONS
//
return true;
}
+ /**
+ * Wraps the requests of the FCP API into jSite requests.
+ *
+ * @param requests
+ * The requests to wrap
+ * @return The wrapped requests
+ */
+ private Collection<Request> wrapRequests(Collection<net.pterodactylus.fcp.highlevel.Request> requests) {
+ Collection<Request> wrappedRequests = new HashSet<Request>();
+ for (net.pterodactylus.fcp.highlevel.Request request : requests) {
+ Request wrappedRequest = new Request(request.getIdentifier());
+ wrappedRequest.setClientToken(request.getClientToken());
+ wrappedRequests.add(wrappedRequest);
+ }
+ return wrappedRequests;
+ }
+
//
// INTERFACE NodeListener
//
return;
}
try {
- Collection<Request> requests = fcpClient.getRequests(true);
+ Collection<Request> requests = wrapRequests(fcpClient.getRequests(true));
for (Request request : requests) {
String clientToken = request.getClientToken();
if ((clientToken == null) || (clientToken.trim().length() == 0)) {