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
Class SynchronizedProtocolDecoder

    java.lang.Object
      org.apache.mina.filter.codec.SynchronizedProtocolDecoder

All Implemented Interfaces:
  ProtocolDecoder

    public class SynchronizedProtocolDecoder

extends Object
implements ProtocolDecoder

A `ProtocolDecoder` implementation which decorates an existing decoder to be thread-safe. Please be careful if you're going to use this decorator because it can be a root of performance degradation in a multi-thread environment. Also, by default, appropriate synchronization is done on a per-session basis by `ProtocolCodecFilter`. Please use this decorator only when you need to synchronize on a per-decoder basis, which is not common.

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)

Constructor Summary
`SynchronizedProtocolDecoder(ProtocolDecoder decoder)` Creates a new instance which decorates the specified `decoder`.

Method Summary
`void` | `decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out)` Decodes binary or protocol-specific content into higher-level message objects.
`void` | `dispose(IoSession session)` Releases all resources related with this decoder.
`void` | `finishDecode(IoSession session, ProtocolDecoderOutput out)` Invoked when the specified `session` is closed.
`ProtocolDecoder` | `getDecoder()` Returns the decoder this decoder is decorating.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SynchronizedProtocolDecoder

    public SynchronizedProtocolDecoder(ProtocolDecoder decoder)

  Creates a new instance which decorates the specified `decoder`.

Method Detail

### getDecoder

    public ProtocolDecoder getDecoder()

  Returns the decoder this decoder is decorating.

### decode

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

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

  Specified by:
    `decode` in interface `ProtocolDecoder`
  Throws:
    `Exception` - if the read data violated protocol specification

### finishDecode

    public void finishDecode(IoSession session,
                             ProtocolDecoderOutput out)
                      throws Exception

  Description copied from interface: `ProtocolDecoder`
  Invoked when the specified `session` is closed. 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 `ProtocolDecoder.decode(IoSession, ByteBuffer, ProtocolDecoderOutput)` method didn't process completely.

  Specified by:
    `finishDecode` in interface `ProtocolDecoder`
  Throws:
    `Exception` - if the read data violated protocol specification

### dispose

    public void dispose(IoSession session)
                 throws Exception

  Description copied from interface: `ProtocolDecoder`
  Releases all resources related with this decoder.

  Specified by:
    `dispose` in interface `ProtocolDecoder`
  Throws:
    `Exception` - if failed to dispose all resources

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.