X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet%2Fpterodactylus%2Ffcp%2Fhighlevel%2FFcpClient.java;h=12768f5010a63078a515630bec31f8b26491ebfd;hb=403b889946c2be0f8cb5b2ffc86ff31d2095e54b;hp=027b41574abb751b10d579aff60542cdc6365af9;hpb=c62dc5885567ae89db150776ac01fcc31b3120fe;p=jFCPlib.git diff --git a/src/net/pterodactylus/fcp/highlevel/FcpClient.java b/src/net/pterodactylus/fcp/highlevel/FcpClient.java index 027b415..12768f5 100644 --- a/src/net/pterodactylus/fcp/highlevel/FcpClient.java +++ b/src/net/pterodactylus/fcp/highlevel/FcpClient.java @@ -213,7 +213,7 @@ public class FcpClient { * @throws FcpException * if an FCP error occurs */ - public Set getPeers(final boolean withMetadata, final boolean withVolatile) throws IOException, FcpException { + public Collection getPeers(final boolean withMetadata, final boolean withVolatile) throws IOException, FcpException { final Set peers = Collections.synchronizedSet(new HashSet()); new ExtendedFcpAdapter() { @@ -254,6 +254,78 @@ public class FcpClient { } /** + * Returns all darknet peers. + * + * @param withMetadata + * true to include peer metadata + * @param withVolatile + * true to include volatile peer data + * @return A set containing the node’s darknet peers + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Collection getDarknetPeers(boolean withMetadata, boolean withVolatile) throws IOException, FcpException { + Collection allPeers = getPeers(withMetadata, withVolatile); + Collection darknetPeers = new HashSet(); + for (Peer peer : allPeers) { + if (!peer.isOpennet() && !peer.isSeed()) { + darknetPeers.add(peer); + } + } + return darknetPeers; + } + + /** + * Returns all opennet peers. + * + * @param withMetadata + * true to include peer metadata + * @param withVolatile + * true to include volatile peer data + * @return A set containing the node’s opennet peers + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Collection getOpennetPeers(boolean withMetadata, boolean withVolatile) throws IOException, FcpException { + Collection allPeers = getPeers(withMetadata, withVolatile); + Collection opennetPeers = new HashSet(); + for (Peer peer : allPeers) { + if (peer.isOpennet() && !peer.isSeed()) { + opennetPeers.add(peer); + } + } + return opennetPeers; + } + + /** + * Returns all seed peers. + * + * @param withMetadata + * true to include peer metadata + * @param withVolatile + * true to include volatile peer data + * @return A set containing the node’s seed peers + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ + public Collection getSeedPeers(boolean withMetadata, boolean withVolatile) throws IOException, FcpException { + Collection allPeers = getPeers(withMetadata, withVolatile); + Collection seedPeers = new HashSet(); + for (Peer peer : allPeers) { + if (peer.isSeed()) { + seedPeers.add(peer); + } + } + return seedPeers; + } + + /** * Adds the given peer to the node. * * @param peer @@ -568,6 +640,19 @@ public class FcpClient { return getRequests(global); } + /** + * Returns all currently visible persistent requests. + * + * @param global + * true to return requests from the global queue, + * false to only show requests from the client-local + * queue + * @return All requests + * @throws IOException + * if an I/O error occurs + * @throws FcpException + * if an FCP error occurs + */ public Collection getRequests(final boolean global) throws IOException, FcpException { final Map requests = Collections.synchronizedMap(new HashMap()); new ExtendedFcpAdapter() {