1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.filter.codec.support;
21
22 import org.apache.mina.common.IoSession;
23 import org.apache.mina.common.IoFilter.NextFilter;
24 import org.apache.mina.common.support.BaseIoSession;
25 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
26 import org.apache.mina.util.Queue;
27
28
29
30
31
32
33
34
35 public class SimpleProtocolDecoderOutput implements ProtocolDecoderOutput {
36 private final NextFilter nextFilter;
37
38 private final IoSession session;
39
40 private final Queue messageQueue = new Queue();
41
42 public SimpleProtocolDecoderOutput(IoSession session, NextFilter nextFilter) {
43 this.nextFilter = nextFilter;
44 this.session = session;
45 }
46
47 public void write(Object message) {
48 messageQueue.push(message);
49 if (session instanceof BaseIoSession) {
50 ((BaseIoSession) session).increaseReadMessages();
51 }
52 }
53
54 public void flush() {
55 while (!messageQueue.isEmpty()) {
56 nextFilter.messageReceived(session, messageQueue.pop());
57 }
58
59 }
60 }