view rep/RoutingTable.java @ 382:4b87f89b3afd

REP Session Manager (Java version) new structure
author one@firefly.cr.ie.u-ryukyu.ac.jp
date Mon, 10 Nov 2008 22:07:45 +0900
parents 7d21eb209e27
children 18cacd0b3ccf
line wrap: on
line source

package rep;

import java.util.HashMap;
import java.util.Map.Entry;

import rep.handler.REPNode;

public class RoutingTable {

	HashMap<Integer,REPNode> sessionManagers =new HashMap<Integer,REPNode>();
	SessionManager manager;
	// we don't need this, but we keep it because it is easy.
	// editor can be reached using this routing table.

	public RoutingTable(SessionManager sessionManager) {
		manager = sessionManager;
	}

	public void add(REPNode forwarder, int smid) {
		if (smid>0) sessionManagers.put(smid, forwarder)	;
	}
	
	public void remove(REPNode f) {
		for(Entry<Integer, REPNode> entry:sessionManagers.entrySet()) {
			if (entry.getValue()==f) sessionManagers.remove(entry.getKey());
		}
	}

	public void removeManager(int smid) {
		sessionManagers.remove(smid);
	}

	public REPNode toSessionManager(int eid) {
		REPNode next = sessionManagers.get(eid);
		if (next==null) return manager.smList.parent();
		return next;
	}

}