annotate rep/Session.java @ 484:7420dea70dd7

Direct Merge first try
author one
date Wed, 20 Oct 2010 21:19:24 +0900
parents 795ef563f2a0
children
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
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
3 import java.util.Collection;
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
4 import java.util.HashMap;
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
5 import java.util.LinkedList;
131
617a47cb0150 *** empty log message ***
pin
parents: 96
diff changeset
6 import rep.channel.REPSocketChannel;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
7 import rep.handler.Editor;
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
8 import rep.handler.REPNode;
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
9 import rep.handler.Forwarder;
131
617a47cb0150 *** empty log message ***
pin
parents: 96
diff changeset
10
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
11 public class Session extends HashMap<Integer,REPNode> {
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
12 /**
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
13 * Editor Session
795ef563f2a0 add commnets
one
parents: 394
diff changeset
14 * contains interacting editors
795ef563f2a0 add commnets
one
parents: 394
diff changeset
15 * accessed by eid. There is one masterEditor which
795ef563f2a0 add commnets
one
parents: 394
diff changeset
16 * has a file name (is a sessionName).
795ef563f2a0 add commnets
one
parents: 394
diff changeset
17 *
795ef563f2a0 add commnets
one
parents: 394
diff changeset
18 * maintain connection among handlers (Dispatcher,
795ef563f2a0 add commnets
one
parents: 394
diff changeset
19 * Forwarder, Editor).
795ef563f2a0 add commnets
one
parents: 394
diff changeset
20 * first->editor->editor...->last
795ef563f2a0 add commnets
one
parents: 394
diff changeset
21 * first may equal to the last. When a session is
795ef563f2a0 add commnets
one
parents: 394
diff changeset
22 * created, first equals the last.
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
23 */
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
24 private static final long serialVersionUID = 1L;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
25 private REPNode masterEditor;
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
26 private int sessionID;
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
27 private String sessionName;
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
28 // isOnwer means this session is owner of an active channels(forwarders).
67
13e4c3f2c6f9 *** empty log message ***
pin
parents: 66
diff changeset
29 private boolean isOwner = false;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
30 private REPNode first;
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
31 private REPNode last;
9
2d4c2c19d2d0 *** empty log message ***
pin
parents: 3
diff changeset
32
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
33 public Session(int sid, String name, REPNode editor) {
227
cbd67817e9cd *** empty log message ***
pin
parents: 224
diff changeset
34 this(sid, editor);
cbd67817e9cd *** empty log message ***
pin
parents: 224
diff changeset
35 sessionName = name;
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
36 }
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
37
39
c873ee0318f8 *** empty log message ***
pin
parents: 38
diff changeset
38
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
39 public Session(int sid, REPNode master) {
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents: 131
diff changeset
40 sessionID = sid;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
41 if (master!=null) {
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
42 // we have a master
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
43 masterEditor = last = master;
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
44 master.setSID(sid);
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
45 put(master.eid,master);
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
46 if(master.channel!=null) {
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
47 // master is a real connected editor
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
48 first = master;
323
1e605880d49e *** empty log message ***
kono
parents: 322
diff changeset
49 masterEditor.setNext(masterEditor);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
50 isOwner = true;
323
1e605880d49e *** empty log message ***
kono
parents: 322
diff changeset
51 }
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
52 }
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
53 }
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
54
372
e16b6326fdac *** empty log message ***
kono
parents: 362
diff changeset
55 /*
e16b6326fdac *** empty log message ***
kono
parents: 362
diff changeset
56 * どこにlocal editorを入れても良いのだが、まとめた方が良いか?
e16b6326fdac *** empty log message ***
kono
parents: 362
diff changeset
57 */
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
58 public void addForwarder(REPNode editor) {
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
59 // add a forwarder and connect this to the session
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
60 editor.setSID(sessionID);
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
61 editor.setNext(last.getNextForwarder());
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
62 last.setNext(editor);
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
63 last = editor;
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
64 put(editor.eid,editor);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
65 isOwner = true;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
66 if(first==null) first = editor;
373
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
67
376
c4ffdac26132 *** empty log message ***
kono
parents: 373
diff changeset
68 // printSessionDetail();
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
69 }
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
70
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
71 public void addEditor(Editor editor) {
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
72 // add a not-connected editor in a sassion
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
73 // the editor is in the outside of this manager
362
f0bd158dace6 *** empty log message ***
kono
parents: 361
diff changeset
74 editor.setSID(sessionID);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
75 put(editor.eid,editor);
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
76 }
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
77
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
78 public Collection<REPNode> getEditorList() {
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
79 return values();
1
3f5bf0255f5e *** empty log message ***
pin
parents: 0
diff changeset
80 }
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
81
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
82 public int getSID() {
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
83 return sessionID;
38
de8638eb0edd *** empty log message ***
pin
parents: 9
diff changeset
84 }
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
85 public REPNode getOwner() {
38
de8638eb0edd *** empty log message ***
pin
parents: 9
diff changeset
86 return masterEditor;
de8638eb0edd *** empty log message ***
pin
parents: 9
diff changeset
87 }
de8638eb0edd *** empty log message ***
pin
parents: 9
diff changeset
88 public String getName() {
de8638eb0edd *** empty log message ***
pin
parents: 9
diff changeset
89 return sessionName;
de8638eb0edd *** empty log message ***
pin
parents: 9
diff changeset
90 }
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
91
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
92 /*
795ef563f2a0 add commnets
one
parents: 394
diff changeset
93 * Remove and disconnect a forwarder from the session
795ef563f2a0 add commnets
one
parents: 394
diff changeset
94 */
274
ad487e63e3c8 *** empty log message ***
kono
parents: 260
diff changeset
95 public boolean deleteEditor(REPSocketChannel<REPCommand> channel) {
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
96 // this is fanatic, one channel may have multiple sessions, but
795ef563f2a0 add commnets
one
parents: 394
diff changeset
97 // a session should have only one channel that is one editor.
795ef563f2a0 add commnets
one
parents: 394
diff changeset
98 // REPNode e = getEditor(channel);
795ef563f2a0 add commnets
one
parents: 394
diff changeset
99 // if (e!=null) { unconnect((Forwarder)e); remove(e); } is Ok.
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
100 LinkedList<REPNode> toBeRemoved = new LinkedList<REPNode>();
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
101 for (REPNode e:values() ) {
275
3be92eb54b1c *** empty log message ***
kono
parents: 274
diff changeset
102 if (e.getChannel()==channel) {
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
103 unconnect((Forwarder)e);
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
104 // we cannot directly remove this because of the concurrent access
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
105 toBeRemoved.add(e);
274
ad487e63e3c8 *** empty log message ***
kono
parents: 260
diff changeset
106 }
ad487e63e3c8 *** empty log message ***
kono
parents: 260
diff changeset
107 }
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
108 for(REPNode e:toBeRemoved) {
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
109 remove(e);
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
110 }
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
111 return !toBeRemoved.isEmpty();
274
ad487e63e3c8 *** empty log message ***
kono
parents: 260
diff changeset
112 }
ad487e63e3c8 *** empty log message ***
kono
parents: 260
diff changeset
113
358
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
114 public boolean deleteForwarder(Forwarder editor) {
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
115 unconnect(editor);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
116 return remove(editor)!=null;
358
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
117 }
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
118
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
119 /*
795ef563f2a0 add commnets
one
parents: 394
diff changeset
120 * Clear connection of a forwarder. The rest of the forwarders in this
795ef563f2a0 add commnets
one
parents: 394
diff changeset
121 * session have to be connected properly.
795ef563f2a0 add commnets
one
parents: 394
diff changeset
122 */
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
123 private void unconnect(Forwarder e) {
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
124 boolean hasOwner = false;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
125 for(REPNode e1:values()) {
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
126 Forwarder f = (Forwarder)e1;
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
127 if(f.next==e) {
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
128 f.next=e.next;
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
129 } else {
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
130 if (f.channel!=null) hasOwner=true;
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
131 }
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
132 }
376
c4ffdac26132 *** empty log message ***
kono
parents: 373
diff changeset
133 if(first==e) first=null;
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
134 if(masterEditor==e) masterEditor=null;
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
135 isOwner = hasOwner;
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
136 }
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
137
227
cbd67817e9cd *** empty log message ***
pin
parents: 224
diff changeset
138 public void setSID(int sid) {
cbd67817e9cd *** empty log message ***
pin
parents: 224
diff changeset
139 sessionID = sid;
56
6ead43b2475e *** empty log message ***
pin
parents: 39
diff changeset
140 }
274
ad487e63e3c8 *** empty log message ***
kono
parents: 260
diff changeset
141
158
5cc8cd48bded *** empty log message ***
pin
parents: 144
diff changeset
142 public boolean hasOwner() {
67
13e4c3f2c6f9 *** empty log message ***
pin
parents: 66
diff changeset
143 return isOwner;
13e4c3f2c6f9 *** empty log message ***
pin
parents: 66
diff changeset
144 }
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
145
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
146
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents: 131
diff changeset
147 public Editor getEditor(REPSocketChannel<REPCommand> channel) {
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
148 for(REPNode editor : values()){
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
149 if(editor.getChannel() == channel) {
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
150 return (Editor)editor;
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
151 }
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents: 131
diff changeset
152 }
0bf7f8d0f5f7 *** empty log message ***
pin
parents: 131
diff changeset
153 return null;
0bf7f8d0f5f7 *** empty log message ***
pin
parents: 131
diff changeset
154 }
315
20fb70068089 *** empty log message ***
kono
parents: 300
diff changeset
155
20fb70068089 *** empty log message ***
kono
parents: 300
diff changeset
156
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
157
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
158 /**
795ef563f2a0 add commnets
one
parents: 394
diff changeset
159 * Start closing protocol
795ef563f2a0 add commnets
one
parents: 394
diff changeset
160 * not yet implemented. Use quit instead.
795ef563f2a0 add commnets
one
parents: 394
diff changeset
161 */
259
9e36fd27e2b6 *** empty log message ***
pin
parents: 227
diff changeset
162 public void closeSession() {
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
163 REPNode f = first;
394
1d5b608f39da checkMerge fix
one
parents: 384
diff changeset
164 if (f!=null) {
1d5b608f39da checkMerge fix
one
parents: 384
diff changeset
165 REPCommand command = new REPCommand(REP.REPCMD_CLOSE, sessionID, REP.SM_EID.id, 0, 0, "");
376
c4ffdac26132 *** empty log message ***
kono
parents: 373
diff changeset
166 f.send(command);
394
1d5b608f39da checkMerge fix
one
parents: 384
diff changeset
167 }
300
8f6b7a1890b2 *** empty log message ***
kono
parents: 281
diff changeset
168 }
316
77f443f6dc9f add session manager channel handler
kono
parents: 315
diff changeset
169
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
170 public REPNode getForwarder(REPSocketChannel<REPCommand> channel) {
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
171 REPNode f = first;
373
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
172 while(f.channel!=channel) f = f.next;
384
bcdf5476b8e4 restructured-version
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
173 ServerMainLoop.logger.writeLog("getFirstForwarder="+f.next+"=>"+f.next.channel);
372
e16b6326fdac *** empty log message ***
kono
parents: 362
diff changeset
174 return f.next;
316
77f443f6dc9f add session manager channel handler
kono
parents: 315
diff changeset
175 }
358
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
176
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
177
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
178 /**
795ef563f2a0 add commnets
one
parents: 394
diff changeset
179 * @param manager
795ef563f2a0 add commnets
one
parents: 394
diff changeset
180 *
795ef563f2a0 add commnets
one
parents: 394
diff changeset
181 * remove all editors in this session from our manager.
795ef563f2a0 add commnets
one
parents: 394
diff changeset
182 */
358
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
183 public void remove(SessionManager manager) {
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
184 for(REPNode editor : values()){
358
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
185 if(editor.getChannel() !=null)
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
186 unconnect((Forwarder)editor);
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
187 manager.editorList.remove(editor);
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
188 }
034acadc0cdc *** empty log message ***
kono
parents: 356
diff changeset
189 }
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
190
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
191
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
192 /**
795ef563f2a0 add commnets
one
parents: 394
diff changeset
193 * @param s
795ef563f2a0 add commnets
one
parents: 394
diff changeset
194 *
795ef563f2a0 add commnets
one
parents: 394
diff changeset
195 * Merge editors from UPDATED session. Only dummy editors
795ef563f2a0 add commnets
one
parents: 394
diff changeset
196 * outside of this manager to be add.
795ef563f2a0 add commnets
one
parents: 394
diff changeset
197 */
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
198 public void merge(Session s) {
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
199 for(REPNode editor : s.values()){
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
200 REPNode mine = get(editor.eid);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
201 if (mine==null) {
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
202 put(editor.eid,editor);
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
203 } else {
411
795ef563f2a0 add commnets
one
parents: 394
diff changeset
204 // update editor status
484
7420dea70dd7 Direct Merge first try
one
parents: 411
diff changeset
205 mine.mergeEditor(editor);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
206 }
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
207 }
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
208 }
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
209
360
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
210 @Override
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
211 public String toString() {
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
212 String s = super.toString();
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
213 return s+" sid="+sessionID+" "+sessionName+" master="+
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
214 ((masterEditor==null)?"null":masterEditor.toString());
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
215 }
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
216
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
217
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
218 public void setName(String string) {
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
219 sessionName = string;
b25f832f875d *** empty log message ***
kono
parents: 359
diff changeset
220 }
320
83790b8b8174 *** empty log message ***
kono
parents: 319
diff changeset
221
361
65c6d12a5835 *** empty log message ***
kono
parents: 360
diff changeset
222
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
223 public void setFirstForwarder(REPNode f) {
362
f0bd158dace6 *** empty log message ***
kono
parents: 361
diff changeset
224 f.setSID(sessionID);
361
65c6d12a5835 *** empty log message ***
kono
parents: 360
diff changeset
225 put(f.eid,f);
372
e16b6326fdac *** empty log message ***
kono
parents: 362
diff changeset
226 f.setNext(f);
376
c4ffdac26132 *** empty log message ***
kono
parents: 373
diff changeset
227 first = last = f;
361
65c6d12a5835 *** empty log message ***
kono
parents: 360
diff changeset
228 }
65c6d12a5835 *** empty log message ***
kono
parents: 360
diff changeset
229
373
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
230 public void printSessionDetail() {
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 376
diff changeset
231 REPNode f = first;
373
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
232 if (f==null) return;
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
233 String log = "Session Detail ";
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
234 while (f!=null) {
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
235 log += ","+f+"="+f.channel+"->"+f.next;
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
236 f = f.next;
376
c4ffdac26132 *** empty log message ***
kono
parents: 373
diff changeset
237 if (f==first) {
373
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
238 log += "*";
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
239 break;
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
240 }
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
241 }
384
bcdf5476b8e4 restructured-version
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 382
diff changeset
242 ServerMainLoop.logger.writeLog(log);
373
ab4405cd3351 looks like we are done. Wait for further test.
kono
parents: 372
diff changeset
243 }
361
65c6d12a5835 *** empty log message ***
kono
parents: 360
diff changeset
244
0
e41994ce73c7 *** empty log message ***
pin
parents:
diff changeset
245 }