Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion src/main/java/org/filesys/server/NetworkServerList.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@
package org.filesys.server;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
* Network Server List Class
*
* @author gkspencer
*/
public class NetworkServerList {
public class NetworkServerList implements Iterable<NetworkServer> {

// List of network servers
private List<NetworkServer> m_servers;
Expand All @@ -39,6 +40,14 @@ public NetworkServerList() {
m_servers = new ArrayList<NetworkServer>();
}

/**
* Iterator over the servers in the list
*/
@Override
public final Iterator<NetworkServer> iterator() {
return m_servers.iterator();
}

/**
* Return the number of servers in the list
*
Expand Down
18 changes: 17 additions & 1 deletion src/main/java/org/filesys/server/config/ServerConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,23 @@ public final NetworkServer findServer(String proto) {
* @return NetworkServer
*/
public final NetworkServer removeServer(String proto) {
return m_serverList.removeServer(proto);
final NetworkServer server = m_serverList.removeServer(proto);
if (server instanceof ConfigurationListener) {
removeListener((ConfigurationListener) server);
}
return server;
}

/**
* Remove all active servers
*/
public final void removeAllServers() {
for (NetworkServer server : m_serverList) {
if (server instanceof ConfigurationListener) {
removeListener((ConfigurationListener) server);
}
}
m_serverList.removeAll();
}

/**
Expand Down