Class ConsumeToEndOfSessionDecodingState
- java.lang.Object
-
- org.apache.mina.filter.codec.statemachine.ConsumeToEndOfSessionDecodingState
-
- All Implemented Interfaces:
DecodingState
public abstract class ConsumeToEndOfSessionDecodingState extends Object implements DecodingState
DecodingStatewhich consumes all received bytes until the session is closed.- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description ConsumeToEndOfSessionDecodingState(int maxLength)Creates a new instance using the specified maximum length.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description DecodingStatedecode(IoBuffer in, ProtocolDecoderOutput out)Invoked when data is available for this state.protected abstract DecodingStatefinishDecode(IoBuffer product, ProtocolDecoderOutput out)Invoked when this state has consumed all bytes until the session is closed.DecodingStatefinishDecode(ProtocolDecoderOutput out)Invoked when the associatedIoSessionis closed.
-
-
-
Constructor Detail
-
ConsumeToEndOfSessionDecodingState
public ConsumeToEndOfSessionDecodingState(int maxLength)
Creates a new instance using the specified maximum length.- Parameters:
maxLength- the maximum number of bytes which will be consumed. If this max is reached aProtocolDecoderExceptionwill be thrown bydecode(IoBuffer, ProtocolDecoderOutput).
-
-
Method Detail
-
decode
public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception
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
public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception
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.
-
finishDecode
protected abstract DecodingState finishDecode(IoBuffer product, ProtocolDecoderOutput out) throws Exception
Invoked when this state has consumed all bytes until the session is closed.- Parameters:
product- the bytes read.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.
-
-