Mercurial > hg > FederatedLinda
view src/fdl/test/debug2/FDLindaNode.java @ 92:ea4ee892baf5
commit
author | kazz <kazz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 22 Apr 2010 16:13:03 +0900 |
parents | |
children | 0ea086f0e96f |
line wrap: on
line source
package fdl.test.debug2; import java.io.IOException; import fdl.FDLindaServ; import fdl.MetaLinda; import fdl.MetaEngine; /** * FDLindaNode * * @author Kazuki Akamine * * Federated Linda の Topology Node * 接続する機能までを実装 MetaEngine は外部から提供される * */ public class FDLindaNode extends FDLindaServ { // Fields private MetaLinda ml; public static final int DEFAULTPORT = 10000; private static String manager; private final static String usageString = "Usage: FDLindaNode -manager SERVERNAME:PORT"; // Constructor public FDLindaNode(int port) throws IOException { super(port); this.ml = new MetaLinda(tupleSpace, this); } @Override public void mainLoop() { me.mainLoop(); } public void setMetaEngine(MetaEngine me) { this.me = me; } public MetaLinda getMetaLinda() { return ml; } // main routine public static void main(String[] args) { int port = DEFAULTPORT; for (int i = 0; i < args.length; i++) { if ("-manager".equals(args[i])) { manager = args[++i]; } else if ("-p".equals(args[i])) { port = new Integer(args[++i]).intValue(); } else { System.err.println(usageString); } } String[] managerData = manager.split(":"); String managerHostName = managerData[0]; int managerPort; if (managerData.length > 1) { managerPort = new Integer(managerData[1]).intValue(); } else { managerPort = DEFAULTPORT; } try { FDLindaNode node = new FDLindaNode(DEFAULTPORT); MetaEngine me = new MetaProtocolEngine(port, node.getMetaLinda(), managerHostName, managerPort); node.setMetaEngine(me); node.mainLoop(); } catch (IOException e) { e.printStackTrace(); } } }