diff options
Diffstat (limited to 'same/src/main/java/com/orbekk/same/Client.java')
-rw-r--r-- | same/src/main/java/com/orbekk/same/Client.java | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/same/src/main/java/com/orbekk/same/Client.java b/same/src/main/java/com/orbekk/same/Client.java index d29147b..5b361ec 100644 --- a/same/src/main/java/com/orbekk/same/Client.java +++ b/same/src/main/java/com/orbekk/same/Client.java @@ -20,18 +20,18 @@ public class Client implements DiscoveryListener { private List<StateChangedListener> stateListeners = new ArrayList<StateChangedListener>(); private NetworkNotificationListener networkListener; - + public class ClientInterfaceImpl implements ClientInterface { private ClientInterfaceImpl() { } - + /** Get a copy of all the client state. */ @Override public State getState() { return new State(state); } - + public void set(String name, String data, long revision) throws UpdateConflict { String masterUrl = state.getDataOf(".masterUrl"); @@ -48,26 +48,26 @@ public class Client implements DiscoveryListener { throw new UpdateConflict("Unable to contact master. Update fails."); } } - + @Override public void set(Component component) throws UpdateConflict { set(component.getName(), component.getData(), component.getRevision()); } - + @Override public void addStateListener(StateChangedListener listener) { stateListeners.add(listener); } - + @Override public void removeStateListener(StateChangedListener listener) { stateListeners.remove(listener); } } - + private ClientInterface clientInterface = new ClientInterfaceImpl(); - + private ClientService serviceImpl = new ClientService() { @Override public void setState(String component, String data, long revision) throws Exception { @@ -81,7 +81,7 @@ public class Client implements DiscoveryListener { new State.Component(component, revision, data)); } } - + @Override public void notifyNetwork(String networkName, String masterUrl) throws Exception { logger.info("NotifyNetwork(networkName={}, masterUrl={})", @@ -90,13 +90,13 @@ public class Client implements DiscoveryListener { networkListener.notifyNetwork(networkName, masterUrl); } } - + @Override public void discoveryRequest(String remoteUrl) { discoveryThread.add(remoteUrl); } }; - + private WorkQueue<String> discoveryThread = new WorkQueue<String>() { @Override protected void onChange() { List<String> pending = getAndClear(); @@ -105,7 +105,7 @@ public class Client implements DiscoveryListener { } } }; - + public Client(State state, ConnectionManager connections, String myUrl) { this.state = state; @@ -116,7 +116,7 @@ public class Client implements DiscoveryListener { public void start() { discoveryThread.start(); } - + public void interrupt() { discoveryThread.interrupt(); } @@ -124,7 +124,7 @@ public class Client implements DiscoveryListener { public String getUrl() { return myUrl; } - + public void joinNetwork(String masterUrl) { logger.info("joinNetwork({})", masterUrl); MasterService master = connections.getMaster(masterUrl); @@ -135,19 +135,19 @@ public class Client implements DiscoveryListener { logger.error("Unable to connect to master.", e); } } - + ClientInterface getInterface() { return clientInterface; } - + String lib_get(String name) { return state.getDataOf(name); } - + <T> T lib_get(String name, TypeReference<T> type) { return state.getParsedData(name, type); } - + void lib_set(String name, String data) throws UpdateConflict { String masterUrl = state.getDataOf(".masterUrl"); long revision = state.getRevision(name) + 1; @@ -164,11 +164,11 @@ public class Client implements DiscoveryListener { throw new UpdateConflict("Unable to contact master. Update fails."); } } - + public State.Component getState(String name) { return state.getComponent(name); } - + State testGetState() { return state; } @@ -176,17 +176,17 @@ public class Client implements DiscoveryListener { public void setNetworkListener(NetworkNotificationListener listener) { this.networkListener = listener; } - + public void sendDiscoveryRequest(String url) { try { connections.getClient(url) - .discoveryRequest(myUrl); + .discoveryRequest(myUrl); } catch (Exception e) { logger.warn("Failed to send discovery request: {}", throwableToString(e)); } } - + @Override public void discover(String url) { String networkName = state.getDataOf(".networkName"); @@ -197,19 +197,19 @@ public class Client implements DiscoveryListener { logger.info("Ignoring broadcast to .Private network."); return; } - + if (!url.equals(myUrl)) { try { connections.getClient(url) - .notifyNetwork(state.getDataOf(".networkName"), - state.getDataOf(".masterUrl")); + .notifyNetwork(state.getDataOf(".networkName"), + state.getDataOf(".masterUrl")); } catch (Exception e) { logger.warn("Failed to contact new client {}: {}", url, throwableToString(e)); } } } - + public ClientService getService() { return serviceImpl; } |