annotate rep/handler/REPSessionManagerHandler.java @ 319:dfed28488274

*** empty log message ***
author kono
date Thu, 09 Oct 2008 17:26:55 +0900
parents 77f443f6dc9f
children 5ba5b7a9761b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
1 package rep.handler;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
2
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
3 import java.io.IOException;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
4
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
5 import rep.Forwarder;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
6 import rep.REPCommand;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
7 import rep.Session;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
8 import rep.SessionManager;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
9 import rep.channel.REPSelectionKey;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
10 import rep.channel.REPSocketChannel;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
11
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
12 public class REPSessionManagerHandler implements REPHandler {
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
13
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
14 private SessionManager manager;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
15
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
16 public REPSessionManagerHandler(SessionManager manager) {
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
17 this.manager = manager;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
18 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
19
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
20 public void cancel(REPSocketChannel<REPCommand> socketChannel) {
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
21 manager.remove(socketChannel);
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
22 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
23
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
24 public void handle(REPSelectionKey<REPCommand> key) throws IOException {
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
25 /*
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
26 * SessionManagerから来たコマンドは、Editor関係のコマンドは、
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
27 * sessionとeidを判定して、そのeditorにforwardしてやれば良い。
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
28 * 残りは、manager.manage() で処理する。
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
29 */
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
30 REPSocketChannel<REPCommand> channel = key.channel1();
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
31 REPCommand command = channel.read();
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
32 System.out.println("REPHandlerImpl.handle() : command = " + command);
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
33 Session s = manager.getSession(command.sid);
319
dfed28488274 *** empty log message ***
kono
parents: 316
diff changeset
34 Forwarder editor = s.getFirstForwarder();
dfed28488274 *** empty log message ***
kono
parents: 316
diff changeset
35 if (editor!=null) {
dfed28488274 *** empty log message ***
kono
parents: 316
diff changeset
36 editor.manage(command);
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
37 } else {
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
38 manager.manage(channel, command);
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
39 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
40 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
41
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
42 }