Mercurial > hg > RemoteEditor > REPSessionManager
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 } |