view rep/RoutingTable.java @ 369:7d21eb209e27

*** empty log message ***
author kono
date Tue, 21 Oct 2008 20:37:05 +0900
parents 1bde894edd83
children 4b87f89b3afd
line wrap: on
line source

package rep;

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

public class RoutingTable {

	HashMap<Integer,Forwarder> sessionManagers =new HashMap<Integer,Forwarder>();
	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(Forwarder forwarder, int smid) {
		if (smid>0) sessionManagers.put(smid, forwarder)	;
	}
	
	public void remove(Forwarder f) {
		for(Entry<Integer, Forwarder> entry:sessionManagers.entrySet()) {
			if (entry.getValue()==f) sessionManagers.remove(entry.getKey());
		}
	}

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

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

}