Class SkippingState
- java.lang.Object
-
- org.apache.mina.filter.codec.statemachine.SkippingState
-
- All Implemented Interfaces:
DecodingState
- Direct Known Subclasses:
LinearWhitespaceSkippingState
public abstract class SkippingState extends Object implements DecodingState
DecodingState
which skips data until canSkip(byte) returns false.- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description SkippingState()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract boolean
canSkip(byte b)
Called to determine whether the specified byte can be skipped.DecodingState
decode(IoBuffer in, ProtocolDecoderOutput out)
Invoked when data is available for this state.protected abstract DecodingState
finishDecode(int skippedBytes)
Invoked when this state cannot skip any more bytes.DecodingState
finishDecode(ProtocolDecoderOutput out)
Invoked when the associatedIoSession
is closed.
-
-
-
Method Detail
-
decode
public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception
Invoked when data is available for this state.- Specified by:
decode
in 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
this
for loop transitions) ornull
if 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 associatedIoSession
is closed. This method is useful when you deal with protocols which don't specify the length of a message (e.g. HTTP responses without content-length header). Implement this method to process the remaining data thatDecodingState.decode(IoBuffer, ProtocolDecoderOutput)
method didn't process completely.- Specified by:
finishDecode
in interfaceDecodingState
- Parameters:
out
- used to write decoded objects.- Returns:
- the next state if a state transition was triggered (use
this
for loop transitions) ornull
if the state machine has reached its end. - Throws:
Exception
- if the read data violated protocol specification.
-
canSkip
protected abstract boolean canSkip(byte b)
Called to determine whether the specified byte can be skipped.- Parameters:
b
- the byte to check.- Returns:
- true if the byte can be skipped.
-
finishDecode
protected abstract DecodingState finishDecode(int skippedBytes) throws Exception
Invoked when this state cannot skip any more bytes.- Parameters:
skippedBytes
- the number of bytes skipped.- Returns:
- the next state if a state transition was triggered (use
this
for loop transitions) ornull
if the state machine has reached its end. - Throws:
Exception
- if the read data violated protocol specification.
-
-