annotate rep/SessionManagerList.java @ 144:0bf7f8d0f5f7

*** empty log message ***
author pin
date Wed, 27 Aug 2008 22:55:43 +0900
parents 4ff7a00b13cc
children eb89a73976fa
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
138
4ff7a00b13cc *** empty log message ***
kent
parents: 133
diff changeset
3 import java.nio.channels.SocketChannel;
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
4 import java.util.LinkedList;
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
5 import java.util.List;
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
6
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
7 import rep.channel.REPSocketChannel;
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
8 import rep.xml.SessionXMLEncoder;
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
9
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
10 public class SessionManagerList {
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
11
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
12 private List<REPSocketChannel<REPCommand>> list = new LinkedList<REPSocketChannel<REPCommand>>();
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
13 private int mySMID;
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
14 private REPSocketChannel<REPCommand> master;
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
15
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
16 public void add(REPSocketChannel<REPCommand> channel) {
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
17 list.add(channel);
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
18 }
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
19
21
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
20 public void sendUpdate(int sessionID, String string) {
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
21 for(REPSocketChannel<REPCommand> channel : list){
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
22 REPPacketSend send = new REPPacketSend(channel);
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
23 send.send(new REPCommand(REP.SMCMD_UPDATE, 0, mySMID, 0, 0, string.length(), string));
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
24 }
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
25 }
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
26
21
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
27 public void sendJoin(REPCommand command) {
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
28 for(REPSocketChannel<REPCommand> channel : list){
21
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
29 REPPacketSend send = new REPPacketSend(channel);
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
30 send.send(command);
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
31 }
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
32 }
25
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
33
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
34 public void sendUpdateUp(REPCommand command){
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
35 REPPacketSend send = new REPPacketSend(master);
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
36 command.setCMD(REP.SMCMD_UPDATE_UP);
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
37 send.send(command);
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
38 }
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
39
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
40 public void sendUpdateDown(REPCommand command){
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
41 command.setCMD(REP.SMCMD_UPDATE_DOWN);
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
42 for(REPSocketChannel<REPCommand> channel : list){
25
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
43 if(channel == master) continue;
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
44 REPPacketSend send = new REPPacketSend(channel);
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
45 send.send(command);
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
46 }
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
47 }
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
48
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
49 public void setMaster(REPSocketChannel<REPCommand> channel){
25
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
50 this.master = channel;
2b4863af8804 *** empty log message ***
pin
parents: 21
diff changeset
51 }
21
2d4bab638a71 *** empty log message ***
pin
parents: 7
diff changeset
52
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
53 public void sendSessionList(SessionList sessionlist, REPCommand command) {
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
54 SessionXMLEncoder encoder = new SessionXMLEncoder(sessionlist);
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
55 command.setString(encoder.sessionListToXML());
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
56
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
57 for(REPSocketChannel<REPCommand> channel : list){
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
58 REPPacketSend send = new REPPacketSend(channel);
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
59 send.send(command);
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
60 }
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
61 }
593f915dd6ff for JOIN and PUT Testing
pin
parents: 25
diff changeset
62
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
63 public void send(REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
64
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
65 }
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
66
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
67 public void sendToMaster(REPCommand repCmd) {
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
68 REPPacketSend send = new REPPacketSend(master);
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
69 send.send(repCmd);
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
70 }
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
71
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
72 public void sendToSlave(REPCommand repCmd) {
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
73 for(REPSocketChannel<REPCommand> channel : list){
58
fca7217dab1e *** empty log message ***
pin
parents: 56
diff changeset
74 if(channel.equals(master)) continue;
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
75 REPPacketSend send = new REPPacketSend(channel);
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
76 send.send(repCmd);
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
77 }
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
78 }
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
79
138
4ff7a00b13cc *** empty log message ***
kent
parents: 133
diff changeset
80 public void sendExcept(REPSocketChannel<REPCommand> channel2, REPCommand command) {
133
8dce4348966c *** empty log message ***
kono
parents: 78
diff changeset
81 for(REPSocketChannel<REPCommand> channel : list){
138
4ff7a00b13cc *** empty log message ***
kent
parents: 133
diff changeset
82 if(channel.equals(channel2)) continue;
78
8a4f92f31c58 *** empty log message ***
pin
parents: 58
diff changeset
83 REPPacketSend send = new REPPacketSend(channel);
8a4f92f31c58 *** empty log message ***
pin
parents: 58
diff changeset
84 send.send(command);
8a4f92f31c58 *** empty log message ***
pin
parents: 58
diff changeset
85 }
8a4f92f31c58 *** empty log message ***
pin
parents: 58
diff changeset
86 }
8a4f92f31c58 *** empty log message ***
pin
parents: 58
diff changeset
87
7
5067a6a93d01 *** empty log message ***
pin
parents:
diff changeset
88 }