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 Details

  • Constructor Details

    • ConsumeToDynamicTerminatorDecodingState

      public ConsumeToDynamicTerminatorDecodingState()
  • Method Details

    • decode

      public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception
      Invoked when data is available for this state.
      Specified by:
      decode in interface DecodingState
      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

      public 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 DecodingState.decode(IoBuffer, ProtocolDecoderOutput) method didn't process completely.
      Specified by:
      finishDecode in interface DecodingState
      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.
    • isTerminator

      protected abstract boolean isTerminator(byte b)
      Determines whether the specified byte is a terminator.
      Parameters:
      b - the byte to check.
      Returns:
      true if b is a terminator, false otherwise.
    • 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 current ProtocolDecoderOutput used to write decoded messages.
      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.