annotate rep/SessionList.java @ 319:dfed28488274

*** empty log message ***
author kono
date Thu, 09 Oct 2008 17:26:55 +0900
parents c83a3faec487
children 83790b8b8174
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
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
11 LinkedList<Session> sessionLinkedList = new LinkedList<Session>();
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
12 LinkedList<String> stringlist = new LinkedList<String>();
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
13 private int sessionID = 0;
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
14 private int editorCount = 0;
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
15 private String maxHost;
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
16
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
17 public SessionList(){
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
18 makeDefaultSession();
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
19 }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
20
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
21 public void add(REPSocketChannel<REPCommand> channel) {
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
22
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
23 }
31
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
24
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
25 public void makeDefaultSession(){
593f915dd6ff for JOIN and PUT Testing
pin
parents: 9
diff changeset
26 }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
27
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
28 public int getEditorNumber() {
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
29 return 0;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
30
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
31 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
32
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
33 public void add(REPSocketChannel<REPCommand> channel, int sid) {
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
34
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
35 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
36
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
37 public int addSession(REPSocketChannel<REPCommand> channel, String string) {
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
38 sessionID++;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
39 return sessionID;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
40
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
41 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
42
317
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
43 public void addEditor(SessionManager manager,REPSocketChannel<REPCommand> channel, int sid, REPCommand repCmd) {
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
44 int editorID = repCmd.eid;
317
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
45 sessionLinkedList.get(sid-1).addEditor(manager,editorID, channel); //本当はforループで検索しないといけないよ。
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
46 }
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
47
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
48 public int getNumberOfEditor() {
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
49 editorCount++;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
50 return editorCount;
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
51 }
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
52
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
53
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
54 public void addSessionManager(SocketChannel channel, REPCommand repCmd) {
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
55
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
56 }
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
57
3
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
58 public String getSessionList() {
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
59 if (sessionLinkedList != null) {
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
60 System.out.println(sessionLinkedList.toString());
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
61 return sessionLinkedList.toString();
3
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
62 }
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
63 return "{}";
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
64 }
f31fcac5a949 *** empty log message ***
pin
parents: 2
diff changeset
65
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
66
317
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
67 public void addEditor(SessionManager manager,REPSocketChannel<REPCommand> editorChannel, int sid, int eid) {
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
68 sessionLinkedList.get(sid-1).addEditor(manager,eid, editorChannel);
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
69 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
70
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
71 public void sendSelect(int sid) {
158
5cc8cd48bded *** empty log message ***
pin
parents: 135
diff changeset
72 REPSocketChannel<REPCommand> channel = sessionLinkedList.get(sid-1).getOwner().getChannel();
284
90965a3bd4f3 editor simulator
kono
parents: 252
diff changeset
73 channel.write(new REPCommand(REP.SMCMD_SELECT, sid, 0, 0, 0, ""));
8
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
74 }
b774b87cc2c1 *** empty log message ***
pin
parents: 3
diff changeset
75
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
76 // public String getXML() {
122
790c8dd42a7b *** empty log message ***
kono
parents: 120
diff changeset
77 ///* SessionListをXMLに書き出す。ときの形式
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
78 // * <Session>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
79 // * <editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
80 // * <sid/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
81 // * <host/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
82 // * <port/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
83 // * <filename/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
84 // * </editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
85 // * <editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
86 // * <sid/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
87 // * <host/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
88 // * <port/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
89 // * </editor>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
90 // * </Session>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
91 // * <SessionManager>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
92 // * <host/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
93 // * <port/>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
94 // * </SessionManager>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
95 // * <Session>
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
96 // * </Session>
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
97 // *
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
98 // StringWriter str = null;
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
99 // try {
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
100 // str = new StringWriter();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
101 // DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
102 // DocumentBuilder builder = factory.newDocumentBuilder();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
103 // Document doc = builder.newDocument();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
104 // Element root = doc.getDocumentElement();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
105 // root = doc.createElement("SessionList");
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
106 // for(Session session : session4){
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
107 // Element element = doc.createElement("Session");
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
108 // root.appendChild(element);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
109 // Element element2 = doc.createElement("editor");
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
110 // element.appendChild(element2);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
111 // Editor editor = session.getMaster();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
112 // Element element3 = doc.createElement(editor.getHost());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
113 // Element element4 = doc.createElement(editor.getPort());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
114 // Element element5 = doc.createElement(editor.getName());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
115 // element5 = doc.createElement(session.getName());
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
116 // element2.appendChild(element3);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
117 // element2.appendChild(element4);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
118 // element2.appendChild(element5);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
119 //
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
120 // }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
121 // doc.appendChild(root);
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
122 //
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
123 // TransformerFactory tfactory = TransformerFactory.newInstance();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
124 // Transformer transformer = tfactory.newTransformer();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
125 // StreamResult result = new StreamResult(str);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
126 // //transformer.transform(new DOMSource(doc), new StreamResult(System.out));
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
127 // transformer.transform(new DOMSource(doc), result);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
128 // System.out.println(str);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
129 ////
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
130 //// XMLEncoder e = new XMLEncoder(System.out);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
131 //// e.writeObject(session4);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
132 //// e.writeObject(stringlist);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
133 //// e.close();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
134 //
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
135 // //System.out.println(doc);
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
136 // }catch (Exception e){
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
137 // e.printStackTrace();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
138 // }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
139 // return str.toString();
41
86a1553028ad *** empty log message ***
pin
parents: 39
diff changeset
140 // }*/
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
141
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
142 public LinkedList<Session> getList() {
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
143 return sessionLinkedList;
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
144 }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
145
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
146 public String toXML() {
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
147 SessionXMLEncoder encoder = new SessionXMLEncoder(sessionLinkedList);
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
148 encoder.sessionListToXML();
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
149 return null;
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
150 }
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
151
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
152 public int addSession(Session session) {
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
153 sessionID++;
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
154 session.setSID(sessionID);
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
155 sessionLinkedList.add(session);
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
156 return sessionID;
38
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
157 }
de8638eb0edd *** empty log message ***
pin
parents: 31
diff changeset
158
56
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
159 public void addToRoutingTable(SocketChannel channel) {
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
160
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
161 }
6ead43b2475e *** empty log message ***
pin
parents: 45
diff changeset
162
66
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
163 public Session getSession(int sid) {
120
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
164 for(Session session : sessionLinkedList){
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
165 if(session.getSID() == sid){
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
166 return session;
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
167 }
99e598a1dbf8 *** empty log message ***
pin
parents: 101
diff changeset
168 }
66
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
169 return sessionLinkedList.get(sid - 1);
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
170 }
99196780bbf5 *** empty log message ***
pin
parents: 56
diff changeset
171
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
172 public void setMaxHost(String myHost) {
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
173 maxHost = myHost;
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
174 }
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
175
82
4bb583553a42 *** empty log message ***
pin
parents: 80
diff changeset
176 public String getMaxHost() {
80
f7a9b323458b *** empty log message ***
pin
parents: 77
diff changeset
177 return maxHost;
77
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
178 }
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
179
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
180 public void setList(LinkedList<Session> list) {
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
181 sessionLinkedList = list;
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
182 }
eb78312ea831 *** empty log message ***
pin
parents: 66
diff changeset
183
130
fc15d8fd1326 *** empty log message ***
kent
parents: 122
diff changeset
184 public void update(REPSocketChannel<REPCommand> channel, SessionList receivedSessionList) {
83
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
185 LinkedList<Session> list = receivedSessionList.getList();
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
186 int i = 0;
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
187 for(Session session : list){
101
612cb62151ce *** empty log message ***
pin
parents: 83
diff changeset
188 session.getEditorList().get(0).setChannel(channel);
83
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
189 ++i;
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
190 }
9381b4734a0b *** empty log message ***
pin
parents: 82
diff changeset
191 }
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
192 }