Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.mina.filter.codec.demux
Interface MessageDecoder

All Known Implementing Classes:
  MessageDecoderAdapter

    public interface MessageDecoder

Decodes specific messages.

Version:
  $Rev: 555855 $, $Date: 2007-07-13 05:19:00 +0200 (Fri, 13 Jul 2007) $
Author:
  The Apache Directory Project (mina-dev@directory.apache.org)
See Also:
  `DemuxingProtocolCodecFactory`, `MessageDecoderFactory`

Field Summary
`static MessageDecoderResult` | `NEED_DATA` Represents a result from `decodable(IoSession, ByteBuffer)` and `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)`.
`static MessageDecoderResult` | `NOT_OK` Represents a result from `decodable(IoSession, ByteBuffer)` and `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)`.
`static MessageDecoderResult` | `OK` Represents a result from `decodable(IoSession, ByteBuffer)` and `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)`.

Method Summary
`MessageDecoderResult` | `decodable(IoSession session, ByteBuffer in)` Checks the specified buffer is decodable by this decoder.
`MessageDecoderResult` | `decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out)` Decodes binary or protocol-specific content into higher-level message objects.
`void` | `finishDecode(IoSession session, ProtocolDecoderOutput out)` Invoked when the specified `session` is closed while this decoder was parsing the data.

Field Detail

### OK

    static final MessageDecoderResult OK

  Represents a result from `decodable(IoSession, ByteBuffer)` and `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)`. Please refer to each method's documentation for detailed explanation.

### NEED_DATA

    static final MessageDecoderResult NEED_DATA

  Represents a result from `decodable(IoSession, ByteBuffer)` and `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)`. Please refer to each method's documentation for detailed explanation.

### NOT_OK

    static final MessageDecoderResult NOT_OK

  Represents a result from `decodable(IoSession, ByteBuffer)` and `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)`. Please refer to each method's documentation for detailed explanation.

Method Detail

### decodable

    MessageDecoderResult decodable(IoSession session,
                                   ByteBuffer in)

  Checks the specified buffer is decodable by this decoder.

  Returns:
    `OK` if this decoder can decode the specified buffer. `NOT_OK` if this decoder cannot decode the specified buffer. `NEED_DATA` if more data is required to determine if the specified buffer is decodable (`OK`) or not decodable `NOT_OK`.

### decode

    MessageDecoderResult decode(IoSession session,
                                ByteBuffer in,
                                ProtocolDecoderOutput out)
                                throws Exception

  Decodes binary or protocol-specific content into higher-level message objects. MINA invokes `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)` method with read data, and then the decoder implementation puts decoded messages into `ProtocolDecoderOutput`.

  Returns:
    `OK` if you finished decoding messages successfully. `NEED_DATA` if you need more data to finish decoding current message. `NOT_OK` if you cannot decode current message due to protocol specification violation.
  Throws:
    `Exception` - if the read data violated protocol specification

### finishDecode

    void finishDecode(IoSession session,
                      ProtocolDecoderOutput out)
                      throws Exception

  Invoked when the specified `session` is closed while this decoder was parsing the data. This method is useful when you deal with the protocol which doesn't specify the length of a message such as HTTP response without `content-length` header. Implement this method to process the remaining data that `decode(IoSession, ByteBuffer, ProtocolDecoderOutput)` method didn't process completely.

  Throws:
    `Exception` - if the read data violated protocol specification

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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