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 java.util.ArrayList;
23 import java.util.List;
24
25 import org.apache.mina.common.IoFilter.NextFilter;
26 import org.apache.mina.common.IoSession;
27 import org.apache.mina.common.support.BaseIoSession;
28 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
29
30
31
32
33
34
35
36
37 public class SimpleProtocolDecoderOutput implements ProtocolDecoderOutput {
38 private final NextFilter nextFilter;
39
40 private final IoSession session;
41
42 private final List<Object> messageQueue = new ArrayList<Object>();
43
44 public SimpleProtocolDecoderOutput(IoSession session, NextFilter nextFilter) {
45 this.nextFilter = nextFilter;
46 this.session = session;
47 }
48
49 public void write(Object message) {
50 messageQueue.add(message);
51 if (session instanceof BaseIoSession) {
52 ((BaseIoSession) session).increaseReadMessages();
53 }
54 }
55
56 public void flush() {
57 while (!messageQueue.isEmpty()) {
58 nextFilter.messageReceived(session, messageQueue.remove(0));
59 }
60 }
61 }