annotate rep/Forwarder.java @ 328:6ceb222570cb

merge is working now.
author kono
date Sat, 11 Oct 2008 22:23:45 +0900
parents 7b6dede07f4a
children ef4afcae0c92
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;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
2
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
3 import rep.channel.REPLogger;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
4 import rep.channel.REPSocketChannel;
317
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
5 import rep.handler.PacketSet;
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
6
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
7 public class Forwarder extends EditorPlus {
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
8 int seq = 0;
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
9 Forwarder next;
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
10 // REPCommands we sent to the next editor
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
11 final int limit=100;
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
12 REPLogger ns = REPLogger.singleton();
317
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
13 SessionManager manager;
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
14
317
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
15 public Forwarder(SessionManager manager) {
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
16 this.manager = manager;
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
17 }
c83a3faec487 *** empty log message ***
kono
parents: 316
diff changeset
18
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
19 public int seq() {
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
20 return seq++;
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
21 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
22
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
23 public void send(REPCommand command) {
318
dc57e24ea3df *** empty log message ***
kono
parents: 317
diff changeset
24 assert(command!=null);
327
7b6dede07f4a *** empty log message ***
kono
parents: 319
diff changeset
25 REPCommand c = new REPCommand(command);
328
6ceb222570cb merge is working now.
kono
parents: 327
diff changeset
26 manager.addWriteQueue(new PacketSet(channel,null, c));
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
27 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
28
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
29 public REPSocketChannel<REPCommand> getChannel() {
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
30 return channel;
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
31 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
32
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
33 public void setChannel(REPSocketChannel<REPCommand> channel) {
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
34 this.channel = channel;
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
35 }
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
36
318
dc57e24ea3df *** empty log message ***
kono
parents: 317
diff changeset
37 public void setQuit2(REPCommand cmd) {
dc57e24ea3df *** empty log message ***
kono
parents: 317
diff changeset
38 send(cmd);
dc57e24ea3df *** empty log message ***
kono
parents: 317
diff changeset
39 }
dc57e24ea3df *** empty log message ***
kono
parents: 317
diff changeset
40
319
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
41 public void setNext(Forwarder next) {
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
42 this.next = next;
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
43 }
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
44
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
45 public Forwarder getNextForwarder() {
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
46 return next;
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
47 }
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
48
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
49 public boolean manage(REPCommand command) {
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
50 send(command);
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
51 return true;
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
52 }
dfed28488274 *** empty log message ***
kono
parents: 318
diff changeset
53
316
77f443f6dc9f add session manager channel handler
kono
parents:
diff changeset
54 }