Mercurial > hg > Database > Alice
diff src/main/java/alice/topology/node/StartTopologyNode.java @ 345:8f71c3e6f11d
Change directory structure Maven standard
author | sugi |
---|---|
date | Wed, 16 Apr 2014 18:26:07 +0900 |
parents | |
children | 5ceb1c4db167 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/alice/topology/node/StartTopologyNode.java Wed Apr 16 18:26:07 2014 +0900 @@ -0,0 +1,69 @@ +package alice.topology.node; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.net.UnknownHostException; +import java.util.Enumeration; + +import alice.codesegment.CodeSegment; +import alice.datasegment.DataSegment; +import alice.topology.HostMessage; + +public class StartTopologyNode extends CodeSegment { + + private TopologyNodeConfig conf; + private CodeSegment startCS; + + public StartTopologyNode(TopologyNodeConfig conf, CodeSegment startCS) { + this.conf = conf; + this.startCS = startCS; + } + + @Override + public void run() { + DataSegment.connect("manager", "", conf.managerHostName, conf.managerPort, false); + String localHostName = null; + try { + localHostName = InetAddress.getLocalHost().getHostName(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + + HostMessage host = new HostMessage(localHostName, conf.localPort); + ods.put("manager", "host", host); + + IncomingAbstractHostName cs = new IncomingAbstractHostName(host); + cs.absName.setKey("local", "host"); + + IncomingReverseKey cs2 = new IncomingReverseKey(); + cs2.reverseKey.setKey("local", "reverseKey"); + cs2.reverseCount.setKey("local", "reverseCount"); + + ods.put("local", "reverseCount", 0); + + ConfigurationFinish cs3 = new ConfigurationFinish(startCS); + cs3.reverseCount.setKey("local", "reverseCount"); + cs3.configNodeNum.setKey("local", "configNodeNum"); + + } + + @SuppressWarnings("unused") + private String getIPAddress() throws SocketException { + Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); + + while(interfaces.hasMoreElements()){ + NetworkInterface network = interfaces.nextElement(); + Enumeration<InetAddress> addresses = network.getInetAddresses(); + + while(addresses.hasMoreElements()){ + String address = addresses.nextElement().getHostAddress(); + if(!"127.0.0.1".equals(address) && !"0.0.0.0".equals(address)){ + return address; + } + } + } + return "127.0.0.1"; + } + +}