annotate rep/handler/REPHandlerInMerge.java @ 313:0585fd2410b8 single-insert-command

Single Insert Command worked.
author kono
date Sun, 05 Oct 2008 22:36:24 +0900
parents c5be84d53c7f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
1 package rep.handler;
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
2
155
bbd2801d8ce0 *** empty log message ***
pin
parents: 148
diff changeset
3 import java.io.IOException;
178
a097b1d619a1 *** empty log message ***
pin
parents: 167
diff changeset
4 import rep.Editor;
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
5 import rep.REPCommand;
313
0585fd2410b8 Single Insert Command worked.
kono
parents: 308
diff changeset
6 import rep.Session;
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
7 import rep.SessionManager;
213
4d9b32666ed2 *** empty log message ***
pin
parents: 178
diff changeset
8 import rep.channel.REPSelectionKey;
155
bbd2801d8ce0 *** empty log message ***
pin
parents: 148
diff changeset
9 import rep.channel.REPSocketChannel;
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
10
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
11 public class REPHandlerInMerge implements REPHandler {
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
12
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
13 private SessionManager manager;
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
14
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
15 public REPHandlerInMerge(SessionManager manager) {
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
16 this.manager = manager;
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
17 }
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
18
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
19
213
4d9b32666ed2 *** empty log message ***
pin
parents: 178
diff changeset
20 public void handle(REPSelectionKey<REPCommand> key) throws IOException {
178
a097b1d619a1 *** empty log message ***
pin
parents: 167
diff changeset
21 //マージ中のエディタの前のエディタのコマンドをWaitingListに追加する
308
c5be84d53c7f *** empty log message ***
kono
parents: 274
diff changeset
22 REPSocketChannel<REPCommand> channel = key.channel1();
273
d6a33e295d47 *** empty log message ***
kono
parents: 267
diff changeset
23 REPCommand command = channel.read();
274
ad487e63e3c8 *** empty log message ***
kono
parents: 273
diff changeset
24 System.out.println("REPHandlerImpl.handle() : command = " + command);
308
c5be84d53c7f *** empty log message ***
kono
parents: 274
diff changeset
25 // if (manager.isMerging(command.sid()))...
c5be84d53c7f *** empty log message ***
kono
parents: 274
diff changeset
26 // 同じchannelで、merge中のsessionは一つは限らない。
c5be84d53c7f *** empty log message ***
kono
parents: 274
diff changeset
27 // なので、sid をinstanceで持つのではだめ。
313
0585fd2410b8 Single Insert Command worked.
kono
parents: 308
diff changeset
28 Session s = manager.getSession(command.sid);
0585fd2410b8 Single Insert Command worked.
kono
parents: 308
diff changeset
29 Editor editor = s.getEditor(channel);
308
c5be84d53c7f *** empty log message ***
kono
parents: 274
diff changeset
30 manager.addWaitingCommand(new PacketSet(channel, editor, command));
148
6a5fe529b192 *** empty log message ***
pin
parents: 144
diff changeset
31 }
6a5fe529b192 *** empty log message ***
pin
parents: 144
diff changeset
32
274
ad487e63e3c8 *** empty log message ***
kono
parents: 273
diff changeset
33 public void cancel(REPSocketChannel<REPCommand> socketChannel) {
ad487e63e3c8 *** empty log message ***
kono
parents: 273
diff changeset
34 manager.remove(socketChannel);
267
c513cf1ce9cc call handle.cancel() on socket channel close.
kono
parents: 252
diff changeset
35 }
144
0bf7f8d0f5f7 *** empty log message ***
pin
parents:
diff changeset
36 }