view src/alice/topology/manager/reconnection/CheckABSName.java @ 269:9982e1c4f099

debugging reconnectManager
author sugi
date Tue, 20 Aug 2013 17:35:03 +0900
parents 709936c00c89
children 23e53aaa8720
line wrap: on
line source

package alice.topology.manager.reconnection;

import java.util.List;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.DataSegment;
import alice.datasegment.Receiver;
import alice.topology.HostMessage;

public class CheckABSName extends CodeSegment{
	private Receiver abs = ids.create(CommandType.PEEK);
	private Receiver host = ids.create(CommandType.TAKE);
	private HostMessage message;
	
	public CheckABSName(HostMessage mes) {
		message = mes;
		abs.setKey("_ABSIPTABLE");
		host.setKey("host");
	}

	@Override
	public void run() {
		System.out.println("CheckABSName");
		@SuppressWarnings("unchecked")
		List<HostMessage> ABSIPList = abs.asClass(List.class);
		for (HostMessage mes : ABSIPList){
			if (mes.name.equals(message.name)&&mes.port == message.port){
				HostMessage hostInfo = host.asClass(HostMessage.class);
				DataSegment.remove(mes.getABSName());
				DataSegment.connect(mes.getABSName(), "", hostInfo.name, hostInfo.port);
				ods.put(mes.getABSName(), "host", mes.getABSName());
				ods.put("_RECABSNAME", mes.getABSName());
				ods.put("HMCLONE", new HostMessage(mes.name, mes.port));		
				mes.port = hostInfo.port;
				mes.name = hostInfo.name;
				ods.update("_ABSIPTABLE", ABSIPList);
				break;
			}
		}
		
		new CheckConnectionList();
		
	}

}