Mercurial > hg > RemoteEditor > REPSessionManager
annotate rep/RoutingTable.java @ 495:bd76f7e39247 no-global-seq-mode
comment
author | one |
---|---|
date | Sun, 24 Oct 2010 00:18:14 +0900 |
parents | 18cacd0b3ccf |
children |
rev | line source |
---|---|
358 | 1 package rep; |
2 | |
3 import java.util.HashMap; | |
4 import java.util.Map.Entry; | |
5 | |
382
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
369
diff
changeset
|
6 import rep.handler.REPNode; |
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
369
diff
changeset
|
7 |
393 | 8 public class RoutingTable extends HashMap<Integer,REPNode>{ |
358 | 9 |
393 | 10 /** |
11 * Routing Table for the tree structure. We keep our child, | |
12 * if we don't know send it to the parent. Every ID has | |
13 * session manager ID part, so we keep session manager ID | |
14 * based path. | |
15 */ | |
16 private static final long serialVersionUID = 1L; | |
369 | 17 SessionManager manager; |
358 | 18 |
369 | 19 public RoutingTable(SessionManager sessionManager) { |
393 | 20 super(); |
369 | 21 manager = sessionManager; |
22 } | |
23 | |
382
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
369
diff
changeset
|
24 public void add(REPNode forwarder, int smid) { |
393 | 25 if (smid>0) put(smid, forwarder) ; |
358 | 26 } |
27 | |
382
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
369
diff
changeset
|
28 public void remove(REPNode f) { |
393 | 29 for(Entry<Integer, REPNode> entry:entrySet()) { |
30 if (entry.getValue()==f) remove(entry.getKey()); | |
358 | 31 } |
32 } | |
33 | |
34 public void removeManager(int smid) { | |
393 | 35 remove(smid); |
358 | 36 } |
37 | |
382
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
369
diff
changeset
|
38 public REPNode toSessionManager(int eid) { |
393 | 39 REPNode next = get(eid); |
369 | 40 if (next==null) return manager.smList.parent(); |
41 return next; | |
358 | 42 } |
43 | |
44 } |