X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fxdcc%2Fcore%2FCore.java;h=24d9c380cae913c53cc8976b931033f6519a933f;hb=5d31ca8229a8ad96822788015313bf5adada892e;hp=fb3e61efb2b83e6257b937a1da2a18bac2f74fa3;hpb=58dbc9b92a90eb17fecaf12d9ef070bce621ebdb;p=xudocci.git diff --git a/src/main/java/net/pterodactylus/xdcc/core/Core.java b/src/main/java/net/pterodactylus/xdcc/core/Core.java index fb3e61e..24d9c38 100644 --- a/src/main/java/net/pterodactylus/xdcc/core/Core.java +++ b/src/main/java/net/pterodactylus/xdcc/core/Core.java @@ -17,6 +17,7 @@ package net.pterodactylus.xdcc.core; +import static net.pterodactylus.xdcc.data.Channel.TO_NETWORK; import static net.pterodactylus.xdcc.data.Download.FILTER_RUNNING; import java.io.File; @@ -69,6 +70,7 @@ import net.pterodactylus.xdcc.data.Network; import net.pterodactylus.xdcc.data.Pack; import net.pterodactylus.xdcc.data.Server; +import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; @@ -158,6 +160,29 @@ public class Core extends AbstractExecutionThreadService { } /** + * Returns all defined networks. + * + * @return All defined networks + */ + public Collection networks() { + return FluentIterable.from(channels).transform(TO_NETWORK).toSet(); + } + + /** + * Returns all connected networks. + * + * @return All connected networks + */ + public Collection connectedNetworks() { + return Lists.newArrayList(Optional.presentInstances(FluentIterable.from(networkConnections.values()).transform(new Function>() { + @Override + public Optional apply(Connection connection) { + return getNetwork(connection); + } + }))); + } + + /** * Returns all configured channels. Due to various circumstances, configured * channels might not actually be joined. * @@ -479,6 +504,7 @@ public class Core extends AbstractExecutionThreadService { * @param connectionFailed * The connection failed event */ + @Subscribe public void connectionFailed(ConnectionFailed connectionFailed) { removeConnection(connectionFailed.connection()); }