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.demux;
21
22 import org.apache.mina.core.session.IoSession;
23 import org.apache.mina.filter.codec.ProtocolCodecFactory;
24 import org.apache.mina.filter.codec.ProtocolDecoder;
25 import org.apache.mina.filter.codec.ProtocolEncoder;
26
27
28
29
30
31
32
33
34
35
36
37 public class DemuxingProtocolCodecFactory implements ProtocolCodecFactory {
38
39 private final DemuxingProtocolEncoderingProtocolEncoder.html#DemuxingProtocolEncoder">DemuxingProtocolEncoder encoder = new DemuxingProtocolEncoder();
40
41 private final DemuxingProtocolDecoderingProtocolDecoder.html#DemuxingProtocolDecoder">DemuxingProtocolDecoder decoder = new DemuxingProtocolDecoder();
42
43
44
45
46 @Override
47 public ProtocolEncoder getEncoder(IoSession session) throws Exception {
48 return encoder;
49 }
50
51
52
53
54 @Override
55 public ProtocolDecoder getDecoder(IoSession session) throws Exception {
56 return decoder;
57 }
58
59
60
61
62
63
64
65 public void addMessageEncoder(Class<?> messageType, Class<? extends MessageEncoder> encoderClass) {
66 this.encoder.addMessageEncoder(messageType, encoderClass);
67 }
68
69
70
71
72
73
74
75
76 public <T> void addMessageEncoder(Class<T> messageType, MessageEncoder<? super T> encoder) {
77 this.encoder.addMessageEncoder(messageType, encoder);
78 }
79
80
81
82
83
84
85
86
87 public <T> void addMessageEncoder(Class<T> messageType, MessageEncoderFactory<? super T> factory) {
88 this.encoder.addMessageEncoder(messageType, factory);
89 }
90
91
92
93
94
95
96
97 public void addMessageEncoder(Iterable<Class<?>> messageTypes, Class<? extends MessageEncoder> encoderClass) {
98 for (Class<?> messageType : messageTypes) {
99 addMessageEncoder(messageType, encoderClass);
100 }
101 }
102
103
104
105
106
107
108
109
110 public <T> void addMessageEncoder(Iterable<Class<? extends T>> messageTypes, MessageEncoder<? super T> encoder) {
111 for (Class<? extends T> messageType : messageTypes) {
112 addMessageEncoder(messageType, encoder);
113 }
114 }
115
116
117
118
119
120
121
122
123 public <T> void addMessageEncoder(Iterable<Class<? extends T>> messageTypes,
124 MessageEncoderFactory<? super T> factory) {
125 for (Class<? extends T> messageType : messageTypes) {
126 addMessageEncoder(messageType, factory);
127 }
128 }
129
130
131
132
133
134
135 public void addMessageDecoder(Class<? extends MessageDecoder> decoderClass) {
136 this.decoder.addMessageDecoder(decoderClass);
137 }
138
139
140
141
142
143
144 public void addMessageDecoder(MessageDecoder decoder) {
145 this.decoder.addMessageDecoder(decoder);
146 }
147
148
149
150
151
152
153 public void addMessageDecoder(MessageDecoderFactory factory) {
154 this.decoder.addMessageDecoder(factory);
155 }
156 }