org.apache.mina.filter.codec.statemachine
Interface DecodingState

All Known Implementing Classes:
ConsumeToCrLfDecodingState, ConsumeToDynamicTerminatorDecodingState, ConsumeToEndOfSessionDecodingState, ConsumeToLinearWhitespaceDecodingState, ConsumeToTerminatorDecodingState, CrLfDecodingState, DecodingStateMachine, FixedLengthDecodingState, IntegerDecodingState, LinearWhitespaceSkippingState, ShortIntegerDecodingState, SingleByteDecodingState, SkippingState

public interface DecodingState

Represents a state in a decoder state machine used by DecodingStateMachine.

Version:
$Rev: 671827 $, $Date: 2008-06-26 10:49:48 +0200 (Do, 26 Jun 2008) $
Author:
The Apache MINA Project (dev@mina.apache.org)

Method Summary
 DecodingState decode(IoBuffer in, ProtocolDecoderOutput out)
          Invoked when data is available for this state.
 DecodingState finishDecode(ProtocolDecoderOutput out)
          Invoked when the associated IoSession is closed.
 

Method Detail

decode

DecodingState decode(IoBuffer in,
                     ProtocolDecoderOutput out)
                     throws Exception
Invoked when data is available for this state.

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) or null if the state machine has reached its end.
Throws:
Exception - if the read data violated protocol specification.

finishDecode

DecodingState finishDecode(ProtocolDecoderOutput out)
                           throws Exception
Invoked when the associated IoSession 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 that decode(IoBuffer, ProtocolDecoderOutput) method didn't process completely.

Parameters:
out - used to write decoded objects.
Returns:
the next state if a state transition was triggered (use this for loop transitions) or null if the state machine has reached its end.
Throws:
Exception - if the read data violated protocol specification.


Copyright © 2004-2009 Apache MINA Project. All Rights Reserved.