Mercurial > hg > Database > Alice
annotate src/alice/topology/node/StartTopologyNode.java @ 266:c0712e0b0a24
creating reconnect Manager
author | sugi |
---|---|
date | Fri, 16 Aug 2013 19:05:43 +0900 |
parents | 7f7b3506bff9 |
children | 9982e1c4f099 |
rev | line source |
---|---|
25 | 1 package alice.topology.node; |
2 | |
3 import java.net.InetAddress; | |
175 | 4 import java.net.NetworkInterface; |
5 import java.net.SocketException; | |
182 | 6 import java.net.UnknownHostException; |
175 | 7 import java.util.Enumeration; |
25 | 8 |
9 import alice.codesegment.CodeSegment; | |
10 import alice.datasegment.DataSegment; | |
11 import alice.topology.HostMessage; | |
12 | |
13 public class StartTopologyNode extends CodeSegment { | |
14 | |
26 | 15 private TopologyNodeConfig conf; |
46 | 16 private CodeSegment startCS; |
25 | 17 |
46 | 18 public StartTopologyNode(TopologyNodeConfig conf, CodeSegment startCS) { |
25 | 19 this.conf = conf; |
46 | 20 this.startCS = startCS; |
25 | 21 } |
22 | |
23 @Override | |
24 public void run() { | |
34
ca079a730d0b
added method to OutputDataSegment and Receiver, to convert type from Value to Class<?> without MessagePack
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
30
diff
changeset
|
25 DataSegment.connect("manager", "", conf.managerHostName, conf.managerPort); |
ca079a730d0b
added method to OutputDataSegment and Receiver, to convert type from Value to Class<?> without MessagePack
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
30
diff
changeset
|
26 String localHostName = null; |
175 | 27 try { |
182 | 28 localHostName = InetAddress.getLocalHost().getHostName(); |
29 } catch (UnknownHostException e) { | |
175 | 30 e.printStackTrace(); |
31 } | |
182 | 32 |
95 | 33 HostMessage host = new HostMessage(localHostName, conf.localPort); |
34
ca079a730d0b
added method to OutputDataSegment and Receiver, to convert type from Value to Class<?> without MessagePack
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
30
diff
changeset
|
34 ods.put("manager", "host", host); |
25 | 35 |
266 | 36 IncomingAbstractHostName cs = new IncomingAbstractHostName(host); |
258 | 37 cs.absName.setKey("local", "host"); |
28
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
38 |
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
39 IncomingReverseKey cs2 = new IncomingReverseKey(); |
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
40 cs2.reverseKey.setKey("local", "reverseKey"); |
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
41 cs2.reverseCount.setKey("local", "reverseCount"); |
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
42 |
34
ca079a730d0b
added method to OutputDataSegment and Receiver, to convert type from Value to Class<?> without MessagePack
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
30
diff
changeset
|
43 ods.put("local", "reverseCount", 0); |
28
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
44 |
46 | 45 ConfigurationFinish cs3 = new ConfigurationFinish(startCS); |
28
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
46 cs3.reverseCount.setKey("local", "reverseCount"); |
98ab26e09a98
Configuration Manager work and implements reverseKey
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
27
diff
changeset
|
47 cs3.configNodeNum.setKey("local", "configNodeNum"); |
25 | 48 } |
49 | |
183 | 50 @SuppressWarnings("unused") |
175 | 51 private String getIPAddress() throws SocketException { |
52 Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); | |
53 | |
54 while(interfaces.hasMoreElements()){ | |
55 NetworkInterface network = interfaces.nextElement(); | |
56 Enumeration<InetAddress> addresses = network.getInetAddresses(); | |
57 | |
58 while(addresses.hasMoreElements()){ | |
59 String address = addresses.nextElement().getHostAddress(); | |
60 if(!"127.0.0.1".equals(address) && !"0.0.0.0".equals(address)){ | |
61 return address; | |
62 } | |
63 } | |
64 } | |
65 return "127.0.0.1"; | |
66 } | |
67 | |
25 | 68 } |