annotate src/fdl/test/debug2/FDLindaNode.java @ 97:0ea086f0e96f fuchita

main loop modification, for easy meta engine addition. add comments.
author one
date Wed, 26 May 2010 10:49:50 +0900
parents ea4ee892baf5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
92
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 package fdl.test.debug2;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 import java.io.IOException;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 import fdl.FDLindaServ;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 import fdl.MetaLinda;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 import fdl.MetaEngine;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 /**
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 * FDLindaNode
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 *
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 * @author Kazuki Akamine
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 *
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 * Federated Linda の Topology Node
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 * 接続する機能までを実装 MetaEngine は外部から提供される
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 *
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 */
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 public class FDLindaNode extends FDLindaServ {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 // Fields
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 private MetaLinda ml;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 public static final int DEFAULTPORT = 10000;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 private static String manager;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 private final static String usageString
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 = "Usage: FDLindaNode -manager SERVERNAME:PORT";
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 // Constructor
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 public FDLindaNode(int port) throws IOException {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 super(port);
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 this.ml = new MetaLinda(tupleSpace, this);
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 @Override public void mainLoop() {
97
0ea086f0e96f main loop modification, for easy meta engine addition.
one
parents: 92
diff changeset
34 me.mainLoop(ml);
92
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 public void setMetaEngine(MetaEngine me) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 this.me = me;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 public MetaLinda getMetaLinda() {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 return ml;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 // main routine
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 public static void main(String[] args) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 int port = DEFAULTPORT;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 for (int i = 0; i < args.length; i++) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 if ("-manager".equals(args[i])) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 manager = args[++i];
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 } else if ("-p".equals(args[i])) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 port = new Integer(args[++i]).intValue();
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 } else {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 System.err.println(usageString);
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 String[] managerData = manager.split(":");
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 String managerHostName = managerData[0];
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 int managerPort;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 if (managerData.length > 1) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 managerPort = new Integer(managerData[1]).intValue();
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 } else {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 managerPort = DEFAULTPORT;
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 try {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 FDLindaNode node = new FDLindaNode(DEFAULTPORT);
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 MetaEngine me = new MetaProtocolEngine(port, node.getMetaLinda(), managerHostName, managerPort);
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 node.setMetaEngine(me);
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 node.mainLoop();
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 } catch (IOException e) {
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 e.printStackTrace();
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 }
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 }