public class DemuxingProtocolEncoder extends Object implements ProtocolEncoder
ProtocolEncoder
that demultiplexes incoming message
encoding requests into an appropriate MessageEncoder
.
MessageEncoder
Override dispose(IoSession)
method. Please don't forget to call
super.dispose().
MessageEncoderFactory
,
MessageEncoder
Constructor and Description |
---|
DemuxingProtocolEncoder() |
Modifier and Type | Method and Description |
---|---|
void |
addMessageEncoder(Class<?> messageType,
Class<? extends MessageEncoder> encoderClass)
Add a new message encoder class for a given message type
|
<T> void |
addMessageEncoder(Class<T> messageType,
MessageEncoder<? super T> encoder)
Add a new message encoder instance for a given message type
|
<T> void |
addMessageEncoder(Class<T> messageType,
MessageEncoderFactory<? super T> factory)
Add a new message encoder factory for a given message type
|
void |
addMessageEncoder(Iterable<Class<?>> messageTypes,
Class<? extends MessageEncoder> encoderClass)
Add a new message encoder class for a list of message types
|
<T> void |
addMessageEncoder(Iterable<Class<? extends T>> messageTypes,
MessageEncoder<? super T> encoder)
Add a new message instance class for a list of message types
|
<T> void |
addMessageEncoder(Iterable<Class<? extends T>> messageTypes,
MessageEncoderFactory<? super T> factory)
Add a new message encoder factory for a list of message types
|
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.
|
protected MessageEncoder<Object> |
findEncoder(org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder.State state,
Class<?> type) |
public void addMessageEncoder(Class<?> messageType, Class<? extends MessageEncoder> encoderClass)
messageType
- The message typeencoderClass
- The encoder classpublic <T> void addMessageEncoder(Class<T> messageType, MessageEncoder<? super T> encoder)
T
- The message typemessageType
- The message typeencoder
- The encoder instancepublic <T> void addMessageEncoder(Class<T> messageType, MessageEncoderFactory<? super T> factory)
T
- The message typemessageType
- The message typefactory
- The encoder factorypublic void addMessageEncoder(Iterable<Class<?>> messageTypes, Class<? extends MessageEncoder> encoderClass)
messageTypes
- The message typesencoderClass
- The encoder classpublic <T> void addMessageEncoder(Iterable<Class<? extends T>> messageTypes, MessageEncoder<? super T> encoder)
T
- The message typemessageTypes
- The message typesencoder
- The encoder instancepublic <T> void addMessageEncoder(Iterable<Class<? extends T>> messageTypes, MessageEncoderFactory<? super T> factory)
T
- The message typemessageTypes
- The message typesfactory
- The encoder factorypublic void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception
ProtocolEncoder.encode(IoSession, Object, ProtocolEncoderOutput)
method with message which is popped from the session write queue, and then
the encoder implementation puts encoded messages (typically IoBuffer
s)
into ProtocolEncoderOutput
.encode
in interface ProtocolEncoder
session
- The current Sessionmessage
- the message to encodeout
- The ProtocolEncoderOutput
that will receive the encoded messageException
- if the message violated protocol specificationprotected MessageEncoder<Object> findEncoder(org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder.State state, Class<?> type)
public void dispose(IoSession session) throws Exception
dispose
in interface ProtocolEncoder
session
- The current SessionException
- if failed to dispose all resourcesCopyright © 2004–2021 Apache MINA Project. All rights reserved.