annotate rep/RoutingTable.java @ 500:66096af6a0e0

Added tag global-seq-sort for changeset 4bcc6b563d52
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 Oct 2010 11:23:21 +0900
parents 18cacd0b3ccf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
1 package rep;
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
2
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
3 import java.util.HashMap;
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
4 import java.util.Map.Entry;
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
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
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
8 public class RoutingTable extends HashMap<Integer,REPNode>{
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
9
393
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
10 /**
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
11 * Routing Table for the tree structure. We keep our child,
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
12 * if we don't know send it to the parent. Every ID has
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
13 * session manager ID part, so we keep session manager ID
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
14 * based path.
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
15 */
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
16 private static final long serialVersionUID = 1L;
369
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
17 SessionManager manager;
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
18
369
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
19 public RoutingTable(SessionManager sessionManager) {
393
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
20 super();
369
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
21 manager = sessionManager;
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
22 }
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
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
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
25 if (smid>0) put(smid, forwarder) ;
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
26 }
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
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
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
29 for(Entry<Integer, REPNode> entry:entrySet()) {
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
30 if (entry.getValue()==f) remove(entry.getKey());
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
31 }
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
32 }
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
33
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
34 public void removeManager(int smid) {
393
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
35 remove(smid);
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
36 }
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
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
18cacd0b3ccf update tags
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
39 REPNode next = get(eid);
369
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
40 if (next==null) return manager.smList.parent();
7d21eb209e27 *** empty log message ***
kono
parents: 367
diff changeset
41 return next;
358
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
42 }
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
43
034acadc0cdc *** empty log message ***
kono
parents:
diff changeset
44 }