49
|
1 package christie.topology.node;
|
|
2
|
|
3 import christie.codegear.CodeGear;
|
|
4 import christie.codegear.CodeGearManager;
|
|
5 import christie.topology.HostMessage;
|
|
6 import christie.topology.manager.IncomingHosts;
|
|
7
|
|
8 import java.net.InetAddress;
|
|
9 import java.net.UnknownHostException;
|
|
10 import java.util.ArrayList;
|
|
11
|
|
12 public class TopologyNode extends CodeGear{
|
|
13
|
|
14 private final String manager;
|
|
15 private final String local;
|
|
16 private TopologyNodeConfig conf;
|
|
17 private CodeGear startCS;
|
|
18
|
|
19 public TopologyNode(TopologyNodeConfig conf, CodeGear startCS) {
|
|
20 this.conf = conf;
|
|
21 this.startCS = startCS;
|
|
22 this.manager = conf.getManagerKey();
|
|
23 this.local = conf.getLocalKey();
|
|
24 }
|
|
25
|
|
26 @Override
|
|
27 protected void run(CodeGearManager cgm) {
|
|
28 cgm.createRemoteDGM(manager, conf.getManagerHostName(), conf.getManagerPort());
|
|
29 String localHostName = null;
|
|
30 try {
|
|
31 localHostName = InetAddress.getLocalHost().getHostAddress();
|
|
32 } catch (UnknownHostException e) {
|
|
33 e.printStackTrace();
|
|
34 }
|
|
35 cgm.setup(new SaveCookie());
|
|
36 if (cgm.localPort == 0) {
|
|
37 // local test mode
|
|
38 localHostName = conf.getLocalKey();
|
|
39 }
|
|
40 getLocalDGM().put("config" , conf );
|
|
41
|
|
42 HostMessage host = new HostMessage(localHostName, cgm.localPort);
|
|
43 host.cookie = conf.cookie;
|
|
44 getDGM(manager).put("hostMessage", host);
|
|
45
|
|
46 getLocalDGM().put("_CLIST", new ArrayList<String>());
|
|
47 //getDGM(local).put("_CLIST", new ArrayList<String>());
|
|
48
|
|
49 cgm.setup(new IncomingAbstractHostName(conf));
|
|
50
|
|
51 cgm.setup(new IncomingReverseKey());
|
|
52
|
|
53 getLocalDGM().put("reverseCount", 0);
|
|
54
|
|
55 cgm.setup(new ConfigurationFinish(startCS));
|
|
56
|
|
57 }
|
|
58 }
|