view 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 source

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";
	}

}