Mercurial > hg > Database > Alice
view src/main/java/alice/topology/manager/CheckComingHost.java @ 599:3284428f525e dispose
add MetaCodeSegment & MetaDSM
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 15 Feb 2016 01:16:35 +0900 |
parents | 8f765e3eed24 |
children | 8a9fd716c335 |
line wrap: on
line source
package alice.topology.manager; import java.util.HashMap; import alice.codesegment.CodeSegment; import alice.codesegment.MetaCodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; import alice.topology.HostMessage; /** * This class check hash and put "newHost"(host info) for CreateTopology when putted "host"(join request) from topology node */ public class CheckComingHost extends MetaCodeSegment { // checkIncomingHost private Receiver host = ids.create(CommandType.TAKE); private Receiver absCookieTable = ids.create(CommandType.PEEK); // cookie, AbsName HashMap public CheckComingHost(){ this.host.setKey("host");//接続要求してきたノードの情報 this.absCookieTable.setKey("absCookieTable"); } @Override public void run() { HostMessage host = this.host.asClass(HostMessage.class); @SuppressWarnings("unchecked") HashMap<String, String> absCookieTable = this.absCookieTable.asClass(HashMap.class); boolean match = false; // check cookie if (host.cookie != null) { if (absCookieTable.containsKey(host.cookie)){ match = true; host.absName = absCookieTable.get(host.cookie); System.out.println("match"); } } if (match){ // coming host has ever joined this App ods.put("reconnectHost", host); new SearchHostName(); } else { ods.put("orderHash", "order"); ods.put("newHost", host); } new CheckComingHost(); } }