comparison rep/RoutingTable.java @ 367:1bde894edd83

*** empty log message ***
author kono
date Tue, 21 Oct 2008 18:46:04 +0900
parents 034acadc0cdc
children 7d21eb209e27
comparison
equal deleted inserted replaced
366:e391433fa9f1 367:1bde894edd83
6 public class RoutingTable { 6 public class RoutingTable {
7 7
8 HashMap<Integer,Forwarder> sessionManagers =new HashMap<Integer,Forwarder>(); 8 HashMap<Integer,Forwarder> sessionManagers =new HashMap<Integer,Forwarder>();
9 // we don't need this, but we keep it because it is easy. 9 // we don't need this, but we keep it because it is easy.
10 // editor can be reached using this routing table. 10 // editor can be reached using this routing table.
11 HashMap<Integer,Forwarder> sessionTable =new HashMap<Integer,Forwarder>();
12 // session may have multiple forward, if so we have a session
13 // here. So we don't have to keep multiple session, just keep
14 // one.
15 11
16 public void add(Forwarder forwarder, int smid, int sid) { 12 public void add(Forwarder forwarder, int smid) {
17 if (smid>0) sessionManagers.put(smid, forwarder) ; 13 if (smid>0) sessionManagers.put(smid, forwarder) ;
18 if (sid>0) sessionTable.put(sid, forwarder) ;
19 } 14 }
20 15
21 public void remove(Forwarder f) { 16 public void remove(Forwarder f) {
22 for(Entry<Integer, Forwarder> entry:sessionManagers.entrySet()) { 17 for(Entry<Integer, Forwarder> entry:sessionManagers.entrySet()) {
23 if (entry.getValue()==f) sessionManagers.remove(entry.getKey()); 18 if (entry.getValue()==f) sessionManagers.remove(entry.getKey());
24 } 19 }
25 for(Entry<Integer, Forwarder> entry:sessionTable.entrySet()) {
26 if (entry.getValue()==f) sessionTable.remove(entry.getKey());
27 }
28 }
29
30 public void removeSession(int sid) {
31 sessionTable.remove(sid);
32 } 20 }
33 21
34 public void removeManager(int smid) { 22 public void removeManager(int smid) {
35 sessionManagers.remove(smid); 23 sessionManagers.remove(smid);
36 } 24 }
37 25
38 public Forwarder toSession(int sid) {
39 return sessionTable.get(sid);
40 }
41
42 public Forwarder toSessionManager(int eid) { 26 public Forwarder toSessionManager(int eid) {
43 return sessionManagers.get(eid); 27 return sessionManagers.get(eid);
44 } 28 }
45 29
46 } 30 }