Package org.apache.mina.filter.codec
Class SynchronizedProtocolEncoder
- java.lang.Object
-
- org.apache.mina.filter.codec.SynchronizedProtocolEncoder
-
- All Implemented Interfaces:
ProtocolEncoder
public class SynchronizedProtocolEncoder extends Object implements ProtocolEncoder
AProtocolEncoder
implementation which decorates an existing encoder 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. Please use this decorator only when you need to synchronize on a per-encoder basis instead of on a per-session basis, which is not common.- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description SynchronizedProtocolEncoder(ProtocolEncoder encoder)
Creates a new instance which decorates the specifiedencoder
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
dispose(IoSession session)
Releases all resources related with this encoder.void
encode(IoSession session, Object message, ProtocolEncoderOutput out)
Encodes higher-level message objects into binary or protocol-specific data.ProtocolEncoder
getEncoder()
-
-
-
Constructor Detail
-
SynchronizedProtocolEncoder
public SynchronizedProtocolEncoder(ProtocolEncoder encoder)
Creates a new instance which decorates the specifiedencoder
.- Parameters:
encoder
- The decorated encoder
-
-
Method Detail
-
getEncoder
public ProtocolEncoder getEncoder()
- Returns:
- the encoder this encoder is decorating.
-
encode
public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception
Encodes higher-level message objects into binary or protocol-specific data. MINA invokesProtocolEncoder.encode(IoSession, Object, ProtocolEncoderOutput)
method with message which is popped from the session write queue, and then the encoder implementation puts encoded messages (typicallyIoBuffer
s) intoProtocolEncoderOutput
.- Specified by:
encode
in interfaceProtocolEncoder
- Parameters:
session
- The current Sessionmessage
- the message to encodeout
- TheProtocolEncoderOutput
that will receive the encoded message- Throws:
Exception
- if the message violated protocol specification
-
dispose
public void dispose(IoSession session) throws Exception
Releases all resources related with this encoder.- Specified by:
dispose
in interfaceProtocolEncoder
- Parameters:
session
- The current Session- Throws:
Exception
- if failed to dispose all resources
-
-