1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.mimo.netty.handler.codec.icap;
15
16 import org.jboss.netty.buffer.ChannelBuffer;
17
18
19
20
21
22
23
24
25
26 public class ReadChunkDelimiterState extends State<Object> {
27
28 public ReadChunkDelimiterState(String name) {
29 super(name);
30 }
31
32 @Override
33 public void onEntry(ChannelBuffer buffer, IcapMessageDecoder icapMessageDecoder) throws DecodingException {
34 }
35
36 @Override
37 public StateReturnValue execute(ChannelBuffer buffer, IcapMessageDecoder icapMessageDecoder) throws DecodingException {
38 for (;;) {
39 byte next = buffer.readByte();
40 if (next == IcapCodecUtil.CR) {
41 if (buffer.readByte() == IcapCodecUtil.LF) {
42 return StateReturnValue.createIrrelevantResult();
43 }
44 } else if (next == IcapCodecUtil.LF) {
45 return StateReturnValue.createIrrelevantResult();
46 }
47 }
48 }
49
50 @Override
51 public StateEnum onExit(ChannelBuffer buffer, IcapMessageDecoder icapMessageDecoder, Object decisionInformation) throws DecodingException {
52 return StateEnum.READ_CHUNK_SIZE_STATE;
53 }
54
55 }