Mercurial > hg > FederatedLinda
view src/fdl/test/debug2/NodeProperty.java @ 92:ea4ee892baf5
commit
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 22 Apr 2010 16:13:03 +0900 |
parents | |
children |
line wrap: on
line source
package fdl.test.debug2; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.util.HashMap; import fdl.MetaLinda; import fdl.PSXLinda; public class NodeProperty { public static int DEFAULTPORT = 10000; public String localHostName; public int localPort; public PSXLinda manager; public String managerHostName; public int managerPort = DEFAULTPORT; public int nodeId; public boolean running = true; public boolean connected = false; public boolean debugConnected = false; public HashMap<TupleId, Routing> nodes = new HashMap<TupleId, Routing>(); public MetaLinda ml; public NodeProperty(int port, MetaLinda ml, String managerHostName, int managerPort) { this.ml = ml; this.localPort = port; this.managerHostName = managerHostName; this.managerPort = managerPort; try { this.localHostName = InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e) { e.printStackTrace(); } manager = connectServer(this.managerHostName, this.managerPort); sendLocalHostName(); } protected void sendLocalHostName() { // TopologyManager に自分のホストネームを送信して、起動を伝える ByteBuffer local = ByteBuffer.wrap((localHostName + ":" + localPort).getBytes()); manager.out(TupleId.MANAGE.id, local); } protected PSXLinda connectServer(String hostName, int port) { PSXLinda linda = null; boolean connectPSX = true; while (connectPSX) { try { linda = ml.open(hostName, port); connectPSX = false; } catch (IOException e) { try { Thread.sleep(40); } catch (InterruptedException e1) { } } } Debug.print("Connect to " + hostName); return linda; } }