Package org.apache.mina.filter.codec
Class SynchronizedProtocolDecoder
java.lang.Object
org.apache.mina.filter.codec.SynchronizedProtocolDecoder
- All Implemented Interfaces:
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.-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new instance which decorates the specified decoder. -
Method Summary
Modifier and TypeMethodDescriptionvoid
decode
(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) Decodes binary or protocol-specific content into higher-level message objects.void
Releases all resources related with this decoder.void
finishDecode
(IoSession session, ProtocolDecoderOutput out) Invoked when the specified session is closed.Returns the decoder this decoder is decorating.
-
Constructor Details
-
SynchronizedProtocolDecoder
Creates a new instance which decorates the specified decoder.
-
-
Method Details
-
getDecoder
Returns the decoder this decoder is decorating. -
decode
Description copied from interface:ProtocolDecoder
Decodes binary or protocol-specific content into higher-level message objects. MINA invokesProtocolDecoder.decode(IoSession, ByteBuffer, ProtocolDecoderOutput)
method with read data, and then the decoder implementation puts decoded messages intoProtocolDecoderOutput
.- Specified by:
decode
in interfaceProtocolDecoder
- Throws:
Exception
- if the read data violated protocol specification
-
finishDecode
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 thatProtocolDecoder.decode(IoSession, ByteBuffer, ProtocolDecoderOutput)
method didn't process completely.- Specified by:
finishDecode
in interfaceProtocolDecoder
- Throws:
Exception
- if the read data violated protocol specification
-
dispose
Description copied from interface:ProtocolDecoder
Releases all resources related with this decoder.- Specified by:
dispose
in interfaceProtocolDecoder
- Throws:
Exception
- if failed to dispose all resources
-