Class ConsumeToDynamicTerminatorDecodingState
java.lang.Object
org.apache.mina.filter.codec.statemachine.ConsumeToDynamicTerminatorDecodingState
- All Implemented Interfaces:
DecodingState
- Direct Known Subclasses:
ConsumeToLinearWhitespaceDecodingState
public abstract class ConsumeToDynamicTerminatorDecodingState
extends Object
implements DecodingState
DecodingState which consumes all bytes until a fixed (ASCII)
character is reached. The terminator is skipped.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondecode(IoBuffer in, ProtocolDecoderOutput out) Invoked when data is available for this state.protected abstract DecodingStatefinishDecode(IoBuffer product, ProtocolDecoderOutput out) Invoked when this state has reached the terminator byte.Invoked when the associatedIoSessionis closed.protected abstract booleanisTerminator(byte b) Determines whether the specifiedbyteis a terminator.
-
Field Details
-
buffer
-
-
Constructor Details
-
ConsumeToDynamicTerminatorDecodingState
public ConsumeToDynamicTerminatorDecodingState()
-
-
Method Details
-
decode
Invoked when data is available for this state.- Specified by:
decodein interfaceDecodingState- Parameters:
in- the data to be decoded.out- used to write decoded objects.- Returns:
- the next state if a state transition was triggered (use
thisfor loop transitions) ornullif the state machine has reached its end. - Throws:
Exception- if the read data violated protocol specification.
-
finishDecode
Invoked when the associatedIoSessionis closed. This method is useful when you deal with protocols which don't specify the length of a message (e.g. HTTP responses withoutcontent-lengthheader). Implement this method to process the remaining data thatDecodingState.decode(IoBuffer, ProtocolDecoderOutput)method didn't process completely.- Specified by:
finishDecodein interfaceDecodingState- Parameters:
out- used to write decoded objects.- Returns:
- the next state if a state transition was triggered (use
thisfor loop transitions) ornullif the state machine has reached its end. - Throws:
Exception- if the read data violated protocol specification.
-
isTerminator
protected abstract boolean isTerminator(byte b) Determines whether the specifiedbyteis a terminator.- Parameters:
b- thebyteto check.- Returns:
trueifbis a terminator,falseotherwise.
-
finishDecode
protected abstract DecodingState finishDecode(IoBuffer product, ProtocolDecoderOutput out) throws Exception Invoked when this state has reached the terminator byte.- Parameters:
product- the read bytes not including the terminator.out- the currentProtocolDecoderOutputused to write decoded messages.- Returns:
- the next state if a state transition was triggered (use
thisfor loop transitions) ornullif the state machine has reached its end. - Throws:
Exception- if the read data violated protocol specification.
-