diff options
author | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-01-10 22:24:01 +0100 |
---|---|---|
committer | Kjetil Ørbekk <kjetil.orbekk@gmail.com> | 2012-01-10 22:33:00 +0100 |
commit | fc7ef2ba156db641e1d193cc2e3f1352eaa74bd8 (patch) | |
tree | b020dbcee136476eaf1cf6c8c22a7530789887d1 /jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java | |
parent | 3fd156ef2cd87e0b70dc5906aad7071ab908cedf (diff) |
Add SameState class to manage the state of a client.
The SameState class manages a view of the 'Same' network. Some
functionality was moved from SameServiceImpl to SameState.
Diffstat (limited to 'jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java')
-rw-r--r-- | jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java b/jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java index 7e1de00..0052de3 100644 --- a/jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java +++ b/jsonrpc/src/main/java/com/orbekk/same/SameServiceImpl.java @@ -6,13 +6,18 @@ import java.util.LinkedList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class SameServiceImpl implements SameService { +public class SameServiceImpl implements SameService, CallerInfoListener { private Logger logger = LoggerFactory.getLogger(getClass()); - private List<String> participants = new LinkedList<String>(); - private String networkName; + private SameState sameState; + private String currentCallerIp; - public SameServiceImpl(String networkName) { - this.networkName = networkName; + public SameServiceImpl(SameState sameState) { + this.sameState = sameState; + } + + @Override + public void setCaller(String callerIp) { + currentCallerIp = callerIp; } @Override @@ -21,12 +26,25 @@ public class SameServiceImpl implements SameService { } @Override - public String participateNetwork(String networkName) { - logger.info("Got participation request."); - if (!networkName.equals(this.networkName)) { + public void participateNetwork(String networkName, int remotePort) { + if (!networkName.equals(sameState.getNetworkName())) { logger.warn("Client tried to join {}, but network name is {}.", - networkName, this.networkName); + networkName, sameState.getNetworkName()); + } + String url = "http://" + currentCallerIp + ":" + remotePort; + sameState.addParticipant(url); + } + + @Override + public void notifyParticipation(String networkName, + List<String> participants) { + logger.info("Joining network {}.", networkName); + int i = 1; + for (String participant : participants) { + logger.info(" {} participant {}: {}", + new Object[]{networkName, i, participant}); + i++; } - return "<Not implemented>"; + logger.warn("Joining not implemented."); } } |