annotate rep/SessionManagerList.java @ 367:1bde894edd83

*** empty log message ***
author kono
date Tue, 21 Oct 2008 18:46:04 +0900
parents c432755c3555
children 4b87f89b3afd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
1 package rep;
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
2
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
3 import java.util.LinkedList;
356
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
4
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
5 public class SessionManagerList extends LinkedList<Forwarder>{
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
6
356
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
7 /**
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
8 *
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
9 */
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
10 private static final long serialVersionUID = 1L;
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
11 private int mySMID=0;
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
12 private int smid_root=0;
360
b25f832f875d *** empty log message ***
kono
parents: 356
diff changeset
13 private Forwarder parent=new NullForwarder(null);
355
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
14 private LinkedList<Forwarder> waiting= new LinkedList<Forwarder>();
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
15
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
16
349
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
17 public void setMaster(Forwarder f) {
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
18 this.parent = f;
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
19 }
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
20
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
21 public void sendToMaster(REPCommand repCmd) {
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
22 parent.send(repCmd);
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
23 }
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
24
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
25 public void sendToSlaves(REPCommand repCmd) {
356
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
26 for(Forwarder channel : this){
349
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
27 channel.send(repCmd);
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
28 }
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
29 }
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
30
349
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
31 public boolean isMaster() {
360
b25f832f875d *** empty log message ***
kono
parents: 356
diff changeset
32 return !parent.isForwarder();
25
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
33 }
21
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
34
355
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
35 public int addNewSessionManager(Forwarder fw,REPCommand receivedCommand) {
356
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
36 add(fw);
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
37 int sid = ++smid_root;
355
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
38 fw.setSID(sid);
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
39 fw.setName(receivedCommand.string);
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
40 return sid;
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
41 }
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
42
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
43
355
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
44 public void setSessionManagerID(int sid) {
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
45 mySMID = sid;
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
46 }
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
47
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
48 public int sessionManagerID() {
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
49 return mySMID;
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
50 }
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
51
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
52 public void addWaitingSessionManager(Forwarder fw, REPCommand command) {
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
53 // SID assign 待ちのSessionManager Channelを登録する
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
54 waiting.add(fw);
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
55
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
56 }
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
57
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
58 public void assignSessionManagerIDtoWaitingSM(int sid) {
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
59 // 待っていたSession Manager ChannelにSession IDを登録し,Session Manager List
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
60 // に登録する。この次のsm_join_ackでSIDが確定する。
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
61 Forwarder waiter;
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
62 if ((waiter=waiting.poll())!=null) {
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
63 waiter.setSID(sid);
356
b18c24dcc5d2 Before chaning put/join scheme for ditributed select.
kono
parents: 355
diff changeset
64 add(waiter);
355
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
65 return;
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
66 }
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
67 assert false;
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
68 }
98607350f7d1 *** empty log message ***
kono
parents: 349
diff changeset
69
365
c432755c3555 distributed session debug continue... SELECT/SELECT_ACK loop
kono
parents: 360
diff changeset
70 public void setParent(Forwarder fw) {
c432755c3555 distributed session debug continue... SELECT/SELECT_ACK loop
kono
parents: 360
diff changeset
71 parent = fw;
c432755c3555 distributed session debug continue... SELECT/SELECT_ACK loop
kono
parents: 360
diff changeset
72 }
367
1bde894edd83 *** empty log message ***
kono
parents: 365
diff changeset
73
1bde894edd83 *** empty log message ***
kono
parents: 365
diff changeset
74 public Forwarder parent() {
1bde894edd83 *** empty log message ***
kono
parents: 365
diff changeset
75 return parent;
1bde894edd83 *** empty log message ***
kono
parents: 365
diff changeset
76 }
365
c432755c3555 distributed session debug continue... SELECT/SELECT_ACK loop
kono
parents: 360
diff changeset
77
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
78
349
ef4afcae0c92 now Forwarder associates each client channel.
kono
parents: 343
diff changeset
79
78
8a4f92f31c58 *** empty log message ***
pin
parents: 58
diff changeset
80
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
81 }