annotate rep/SessionList.java @ 130:fc15d8fd1326

*** empty log message ***
author kent
date Wed, 27 Aug 2008 18:17:12 +0900
parents 790c8dd42a7b
children 70fc1e70652c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
1 package rep;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
2
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
3 import java.nio.channels.SocketChannel;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
4 import java.util.LinkedList;
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
5
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
6 import rep.channel.REPSocketChannel;
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
7 import rep.xml.SessionXMLEncoder;
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
8
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
9 public class SessionList {
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
10
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
11 // Hashtable<Integer, Session> session3 = new Hashtable<Integer, Session>();
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
12 LinkedList<Session> sessionLinkedList = new LinkedList<Session>();
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
13 LinkedList<String> stringlist = new LinkedList<String>();
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
14 private int sessionID = 0;
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
15 private int editorCount = 0;
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
16
2
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
17 private boolean channelequals = false;
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
18 private LinkedList<Session> tmpSessionList = new LinkedList<Session>();
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
19 private String maxHost;
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
20 private LinkedList<Integer> temp = new LinkedList<Integer>();
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
21
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
22 //private TranslaterImp1 translater;
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
23
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
24 public SessionList(){
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
25 makeDefaultSession();
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
26 }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
27
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
28 public void add(REPSocketChannel<REPCommand> channel) {
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
29
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
30 }
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
32 public void makeDefaultSession(){
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
33 // session3.put(0, new Session(0, null, null));
43
24829e1969a0 *** empty log message ***
pin
parents: 41
diff changeset
34 // session4.add(0, new Session(0, null, null));
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
35 }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
36
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
37 public int getEditorNumber() {
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
38 return 0;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
39
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
40 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
41
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
42 public void add(REPSocketChannel<REPCommand> channel, int sid) {
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
43
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
44 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
45
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
46 public int addSession(REPSocketChannel<REPCommand> channel, String string) {
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
47 sessionID++;
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
48 // session3.put(sessionID, new Session(sessionID, string, channel));
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
49 sessionLinkedList.add(new Session(sessionID, string, channel));
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
50 return sessionID;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
51
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
52 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
53
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
54 public void addEditor(REPSocketChannel<REPCommand> channel, int sid, REPCommand repCmd) {
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
55 int editorID = repCmd.eid;
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
56 // if(session3.get(sid) == null) System.out.println("ぬるぽ!");
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
57 // session3.get(sid).addEditor(editorID, channel);
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
58 sessionLinkedList.get(sid-1).addEditor(editorID, channel); //本当はforループで検索しないといけないよ。
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
59 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
60
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
61 // public int getSessionID(SocketChannel channel) {
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
62 // return 0;
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
63 // }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
64
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
65 public int getNumberOfEditor() {
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
66 editorCount++;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
67 return editorCount;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
68 }
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
69
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
70 public void sendCmd(REPSocketChannel<REPCommand> channel2, REPCommand repCmd) {
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
71 // LinkedList <Editor> editorList = session3.get(repCmd.sid).getEditorList();
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
72 LinkedList <Editor> editorList = sessionLinkedList.get(repCmd.sid).getEditorList(); //ここもforループで検索しないといけないよ。
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
73 for(Editor editor : editorList){
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
74 REPSocketChannel<REPCommand> channel = editor.getChannel();
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
75 if(channel.equals(channel2)) {
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
76 System.out.println("equals");
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
77 continue;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
78 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
79 REPPacketSend repSend = new REPPacketSend(channel);
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
80 repSend.send(repCmd);
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
81 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
82 }
2
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
83
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
84 public void sendCmd(REPSocketChannel<REPCommand> channel, REPCommand repCmd, boolean ring){
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
85 // LinkedList <Editor> editorList = session3.get(repCmd.sid).getEditorList();
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
86 LinkedList <Editor> editorList = sessionLinkedList.get(repCmd.sid).getEditorList(); //ここもforループで検索しないといけないよ。
2
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
87 REPPacketSend repsend = null;
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
88 for(Editor editor : editorList){
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
89 REPSocketChannel<REPCommand> channel2 = editor.getChannel();
2
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
90 if(channel.equals(channel2)){
9
2d4c2c19d2d0 *** empty log message ***
pin
parents: 8
diff changeset
91 System.out.println("equals");
2
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
92 channelequals = true;
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
93 }else if(channelequals){
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
94 repsend = new REPPacketSend(channel2);
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
95 repsend.send(repCmd);
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
96 }
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
97 }
02fa9a68d9a2 *** empty log message ***
pin
parents: 1
diff changeset
98 }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
99
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
100 public void addSessionManager(SocketChannel channel, REPCommand repCmd) {
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
101
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
102 }
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
103
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
104 // public void sendAddedSession(REPCommand repCmd) {
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
105 // repCmd.setCMD(REP.SMCMD_SM_JOIN);
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
106 // REPPacketSend repSend = new REPPacketSend(smchannel);
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
107 // }
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
108
3
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
109 public String getSessionList() {
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
110 // if (session3 != null) {
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
111 // System.out.println(session3.toString());
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
112 // return session3.toString();
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
113 // }
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
114 if (sessionLinkedList != null) {
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
115 System.out.println(sessionLinkedList.toString());
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
116 return sessionLinkedList.toString();
3
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
117 }
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
118 return "{}";
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
119 }
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
120
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
121 public void sendToNextEditor(REPSocketChannel<REPCommand> channel, REPCommand repCmd) {
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
122 Editor editor2 = null;
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
123 Editor editor3;
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
124 // LinkedList <Editor> editorList = session3.get(repCmd.sid).getEditorList();
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
125 // this.getSession(sid);
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
126 LinkedList <Editor> editorList = sessionLinkedList.get(repCmd.sid-1).getEditorList(); //ここもforループで検索しないといけないよ。
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
127 for(Editor editor : editorList){
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
128 SocketChannel channel2 = editor.getChannel();
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
129 if(channel.equals(channel2)){
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
130 editor2 = editor;
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
131 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
132 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
133 int size = editorList.size();
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
134 Editor lastEditor = (Editor) editorList.getLast();
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
135 if(size == 0){
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
136 editor3 = null;
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
137 }else if(editor2 == lastEditor){
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
138 editor3 = editorList.get(0);
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
139 }else{
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
140 editor3 = editorList.get(editorList.indexOf(editor2)+1);
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
141 }
9
2d4c2c19d2d0 *** empty log message ***
pin
parents: 8
diff changeset
142 if(editor3 != null){
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
143 //temp.add(repCmd.cmd);
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
144 REPCommand getUndoCommand = new REPCommand();
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
145 getUndoCommand.setCMD(REP.SMCMD_GET_UNDO);
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
146 getUndoCommand.lineno = repCmd.lineno;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
147 editor3.send(getUndoCommand);
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
148 editor3.setKindOfUndoCmd(reverseCmd(repCmd.cmd));
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
149 editor3.send(repCmd);
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
150 //REPPacketSend send = new REPPacketSend(editor3.getChannel());
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
151 //send.send(repCmd);
9
2d4c2c19d2d0 *** empty log message ***
pin
parents: 8
diff changeset
152 }
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
153 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
154
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
155 private int reverseCmd(int cmd) {
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
156 // TODO Auto-generated method stub
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
157 int kindOfCmd = 0;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
158 switch(cmd){
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
159 case REP.REPCMD_INSERT:
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
160 kindOfCmd = REP.REPCMD_DELETE;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
161 break;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
162 case REP.REPCMD_DELETE:
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
163 kindOfCmd = REP.REPCMD_INSERT;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
164 break;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
165 case REP.REPCMD_REPLACE:
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
166 kindOfCmd = REP.REPCMD_REPLACE;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
167 break;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
168 }
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
169 return kindOfCmd;
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
170 }
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
171
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
172 public void addEditor(REPSocketChannel<REPCommand> editorChannel, int sid, int eid) {
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
173 // session3.get(sid).addEditor(eid, editorChannel);
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
174 sessionLinkedList.get(sid-1).addEditor(eid, editorChannel);
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
175 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
176
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
177 public void sendSelect(int sid) {
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
178 // SocketChannel channel = session3.get(sid).getMaster().getChannel();
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
179 REPSocketChannel<REPCommand> channel = sessionLinkedList.get(sid-1).getMaster().getChannel();
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
180 REPPacketSend send = new REPPacketSend(channel);
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
181 send.send(new REPCommand(REP.SMCMD_SELECT, sid, 0, 0, 0, 0, ""));
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
182 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
183
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
184 public void addSession(SocketChannel channel, String string, int i) {
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
185 tmpSessionList.add(new Session(0, string, channel));
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
186 }
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
187
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
188 // public String getXML() {
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
189 ///* SessionListをXMLに書き出す。ときの形式
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
190 // * <Session>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
191 // * <editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
192 // * <sid/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
193 // * <host/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
194 // * <port/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
195 // * <filename/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
196 // * </editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
197 // * <editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
198 // * <sid/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
199 // * <host/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
200 // * <port/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
201 // * </editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
202 // * </Session>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
203 // * <SessionManager>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
204 // * <host/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
205 // * <port/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
206 // * </SessionManager>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
207 // * <Session>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
208 // * </Session>
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
209 // *
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
210 // StringWriter str = null;
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
211 // try {
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
212 // str = new StringWriter();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
213 // DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
214 // DocumentBuilder builder = factory.newDocumentBuilder();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
215 // Document doc = builder.newDocument();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
216 // Element root = doc.getDocumentElement();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
217 // root = doc.createElement("SessionList");
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
218 // for(Session session : session4){
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
219 // Element element = doc.createElement("Session");
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
220 // root.appendChild(element);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
221 // Element element2 = doc.createElement("editor");
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
222 // element.appendChild(element2);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
223 // Editor editor = session.getMaster();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
224 // Element element3 = doc.createElement(editor.getHost());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
225 // Element element4 = doc.createElement(editor.getPort());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
226 // Element element5 = doc.createElement(editor.getName());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
227 // element5 = doc.createElement(session.getName());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
228 // element2.appendChild(element3);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
229 // element2.appendChild(element4);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
230 // element2.appendChild(element5);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
231 //
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
232 // }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
233 // doc.appendChild(root);
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
234 //
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
235 // TransformerFactory tfactory = TransformerFactory.newInstance();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
236 // Transformer transformer = tfactory.newTransformer();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
237 // StreamResult result = new StreamResult(str);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
238 // //transformer.transform(new DOMSource(doc), new StreamResult(System.out));
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
239 // transformer.transform(new DOMSource(doc), result);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
240 // System.out.println(str);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
241 ////
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
242 //// XMLEncoder e = new XMLEncoder(System.out);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
243 //// e.writeObject(session4);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
244 //// e.writeObject(stringlist);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
245 //// e.close();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
246 //
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
247 // //System.out.println(doc);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
248 // }catch (Exception e){
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
249 // e.printStackTrace();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
250 // }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
251 // return str.toString();
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
252 // }*/
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
253
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
254 public LinkedList<Session> getList() {
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
255 return sessionLinkedList;
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
256 }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
257
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
258 public String toXML() {
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
259 SessionXMLEncoder encoder = new SessionXMLEncoder(sessionLinkedList);
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
260 encoder.sessionListToXML();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
261 return null;
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
262 }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
263
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
264 public int addSession(Session session) {
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
265 sessionID++;
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
266 // session3.put(sessionID, session);
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
267 session.setSID(sessionID);
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
268 sessionLinkedList.add(session);
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
269 return sessionID;
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
270 }
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
271
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
272 public void addToRoutingTable(SocketChannel channel) {
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
273
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
274 }
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
275
66
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
276 public Session getSession(int sid) {
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
277 for(Session session : sessionLinkedList){
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
278 if(session.getSID() == sid){
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
279 return session;
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
280 }
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
281 }
66
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
282 return sessionLinkedList.get(sid - 1);
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
283 }
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
284
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
285 public void setMaxHost(String myHost) {
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
286 // TODO Auto-generated method stub
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
287 maxHost = myHost;
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
288 }
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
289
82
4bb583553a42 *** empty log message ***
pin
parents: 80
diff changeset
290 public String getMaxHost() {
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
291 // TODO Auto-generated method stub
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
292 return maxHost;
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
293 }
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
294
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
295 public void setList(LinkedList<Session> list) {
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
296 // TODO Auto-generated method stub
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
297 sessionLinkedList = list;
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
298 }
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
299
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
300 public void update(REPSocketChannel<REPCommand> channel, SessionList receivedSessionList) {
83
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
301 LinkedList<Session> list = receivedSessionList.getList();
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
302 int i = 0;
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
303 for(Session session : list){
101
612cb62151ce *** empty log message ***
pin
parents: 83
diff changeset
304 session.getEditorList().get(0).setChannel(channel);
83
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
305 ++i;
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
306 int sid = addSession(session);
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
307 setTranslationTable(channel, i, sid);
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
308 }
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
309 }
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
310
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
311 private void setTranslationTable(SocketChannel channel, int i, int sid) {
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
312
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
313 }
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
314
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
315 }