diff options
| author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-01-31 13:02:35 +0100 | 
|---|---|---|
| committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-01-31 13:02:35 +0100 | 
| commit | 66bbea9deadc0cf559e2c84d248f1b86a7e59467 (patch) | |
| tree | 2bee7a917b4125644b0ef1d2843ab49664d11934 /same/src/main/java/com/orbekk | |
| parent | 411fbcf6bceb858daec6192cd920f2b13226a169 (diff) | |
Refactor client.
Hide ClientService inside ClientServiceImpl.
Diffstat (limited to 'same/src/main/java/com/orbekk')
| -rw-r--r-- | same/src/main/java/com/orbekk/same/ClientServiceImpl.java | 70 | 
1 files changed, 43 insertions, 27 deletions
diff --git a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java index f19d272..658bf37 100644 --- a/same/src/main/java/com/orbekk/same/ClientServiceImpl.java +++ b/same/src/main/java/com/orbekk/same/ClientServiceImpl.java @@ -11,7 +11,7 @@ import org.slf4j.LoggerFactory;  import com.orbekk.util.WorkQueue; -public class ClientServiceImpl implements ClientService, UrlReceiver, +public class ClientServiceImpl implements UrlReceiver,              DiscoveryListener {      private Logger logger = LoggerFactory.getLogger(getClass());      private ConnectionManager connections; @@ -20,6 +20,35 @@ public class ClientServiceImpl implements ClientService, UrlReceiver,      private StateChangedListener stateListener;      private NetworkNotificationListener networkListener; +    private ClientService serviceImpl = new ClientService() { +        @Override +        public void setState(String component, String data, long revision) throws Exception { +            boolean status = state.update(component, data, revision); +            if (status) { +                if (stateListener != null) { +                    stateListener.stateChanged(component, data); +                } +            } else { +                logger.warn("Ignoring update: {}", +                        new State.Component(component, revision, data)); +            }             +        } +         +        @Override +        public void notifyNetwork(String networkName, String masterUrl) throws Exception { +            logger.info("NotifyNetwork(networkName={}, masterUrl={})",  +                    networkName, masterUrl); +            if (networkListener != null) { +                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(); @@ -41,28 +70,6 @@ public class ClientServiceImpl implements ClientService, UrlReceiver,      public void interrupt() {          discoveryThread.interrupt();      } -     -    @Override -    public void notifyNetwork(String networkName, String masterUrl) { -        logger.info("NotifyNetwork(networkName={}, masterUrl={})",  -                networkName, masterUrl); -        if (networkListener != null) { -            networkListener.notifyNetwork(networkName, masterUrl); -        } -    } - -    @Override -    public void setState(String component, String data, long revision) { -        boolean status = state.update(component, data, revision); -        if (status) { -            if (stateListener != null) { -                stateListener.stateChanged(component, data); -            } -        } else { -            logger.warn("Ignoring update: {}", -                    new State.Component(component, revision, data)); -        } -    }      @Override      public void setUrl(String myUrl) { @@ -130,6 +137,16 @@ public class ClientServiceImpl implements ClientService, UrlReceiver,          this.networkListener = listener;      } +    public void sendDiscoveryRequest(String url) { +        try { +            connections.getClient(url) +                    .discoveryRequest(myUrl); +        } catch (Exception e) { +            logger.warn("Failed to send discovery request: {}", +                    throwableToString(e)); +        } +    } +          @Override      public void discover(String url) {          String clientUrl = url + "ClientService.json"; @@ -144,9 +161,8 @@ public class ClientServiceImpl implements ClientService, UrlReceiver,              }          }      } - -    @Override -    public void discoveryRequest(String remoteUrl) { -        discoveryThread.add(remoteUrl); +     +    public ClientService getService() { +        return serviceImpl;      }  }  | 
