7
|
1 package rep;
|
|
2
|
|
3 import java.nio.channels.SocketChannel;
|
|
4 import java.util.LinkedList;
|
|
5 import java.util.List;
|
|
6
|
|
7 public class SessionManagerList {
|
|
8
|
|
9 private List<SocketChannel> list = new LinkedList<SocketChannel>();
|
|
10 private int mySMID;
|
25
|
11 private SocketChannel master;
|
7
|
12
|
|
13 public void add(SocketChannel channel) {
|
|
14 list.add(channel);
|
|
15 }
|
|
16
|
21
|
17 public void sendUpdate(int sessionID, String string) {
|
7
|
18 for(SocketChannel channel : list){
|
|
19 REPPacketSend send = new REPPacketSend(channel);
|
|
20 send.send(new REPCommand(REP.SMCMD_UPDATE, 0, mySMID, 0, 0, string.length(), string));
|
|
21 }
|
|
22 }
|
|
23
|
21
|
24 public void sendJoin(REPCommand command) {
|
|
25 for(SocketChannel channel : list){
|
|
26 REPPacketSend send = new REPPacketSend(channel);
|
|
27 send.send(command);
|
|
28 }
|
|
29 }
|
25
|
30
|
|
31 public void sendUpdateUp(REPCommand command){
|
|
32 REPPacketSend send = new REPPacketSend(master);
|
|
33 command.setCMD(REP.SMCMD_UPDATE_UP);
|
|
34 send.send(command);
|
|
35 }
|
|
36
|
|
37 public void sendUpdateDown(REPCommand command){
|
|
38 command.setCMD(REP.SMCMD_UPDATE_DOWN);
|
|
39 for(SocketChannel channel : list){
|
|
40 if(channel == master) continue;
|
|
41 REPPacketSend send = new REPPacketSend(channel);
|
|
42 send.send(command);
|
|
43 }
|
|
44 }
|
|
45
|
|
46 public void setMaster(SocketChannel channel){
|
|
47 this.master = channel;
|
|
48 }
|
21
|
49
|
31
|
50 public void sendSessionList(SessionList sessionlist, REPCommand command) {
|
|
51 command.setCMD(REP.SMCMD_SM_JOIN_ACK);
|
|
52
|
|
53 for(SocketChannel channel : list){
|
|
54 REPPacketSend send = new REPPacketSend(channel);
|
|
55 send.send(command);
|
|
56 }
|
|
57 }
|
|
58
|
7
|
59 }
|