org.apache.mina.filter.codec.statemachine

## Class ConsumeToEndOfSessionDecodingState

- java.lang.Object
- - org.apache.mina.filter.codec.statemachine.ConsumeToEndOfSessionDecodingState

- All Implemented Interfaces:
    DecodingState

      public abstract class ConsumeToEndOfSessionDecodingState
      extends Object
      implements DecodingState

  `DecodingState` which consumes all received bytes until the session is closed.
  Author:
    Apache MINA Project

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConsumeToEndOfSessionDecodingState(int maxLength)` Creates a new instance using the specified maximum length.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DecodingState` | `decode(IoBuffer in, ProtocolDecoderOutput out)` Invoked when data is available for this state.
    `protected abstract DecodingState` | `finishDecode(IoBuffer product, ProtocolDecoderOutput out)` Invoked when this state has consumed all bytes until the session is closed.
    `DecodingState` | `finishDecode(ProtocolDecoderOutput out)` Invoked when the associated `IoSession` is closed.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 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 a `ProtocolDecoderException` will be thrown by `decode(IoBuffer, ProtocolDecoderOutput)`.

  - ### Method Detail

    - #### 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.

    - #### 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 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.

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