Class DemuxingProtocolEncoder
- java.lang.Object
-
- org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder
-
- All Implemented Interfaces:
ProtocolEncoder
public class DemuxingProtocolEncoder extends java.lang.Object implements ProtocolEncoder
A compositeProtocolEncoderthat demultiplexes incoming message encoding requests into an appropriateMessageEncoder.Disposing resources acquired by
MessageEncoderOverride
dispose(IoSession)method. Please don't forget to call super.dispose().- Author:
- Apache MINA Project
- See Also:
MessageEncoderFactory,MessageEncoder
-
-
Constructor Summary
Constructors Constructor Description DemuxingProtocolEncoder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMessageEncoder(java.lang.Class<?> messageType, java.lang.Class<? extends MessageEncoder> encoderClass)Add a new message encoder class for a given message type<T> voidaddMessageEncoder(java.lang.Class<T> messageType, MessageEncoder<? super T> encoder)Add a new message encoder instance for a given message type<T> voidaddMessageEncoder(java.lang.Class<T> messageType, MessageEncoderFactory<? super T> factory)Add a new message encoder factory for a given message typevoidaddMessageEncoder(java.lang.Iterable<java.lang.Class<?>> messageTypes, java.lang.Class<? extends MessageEncoder> encoderClass)Add a new message encoder class for a list of message types<T> voidaddMessageEncoder(java.lang.Iterable<java.lang.Class<? extends T>> messageTypes, MessageEncoder<? super T> encoder)Add a new message instance class for a list of message types<T> voidaddMessageEncoder(java.lang.Iterable<java.lang.Class<? extends T>> messageTypes, MessageEncoderFactory<? super T> factory)Add a new message encoder factory for a list of message typesvoiddispose(IoSession session)Releases all resources related with this encoder.voidencode(IoSession session, java.lang.Object message, ProtocolEncoderOutput out)Encodes higher-level message objects into binary or protocol-specific data.protected MessageEncoder<java.lang.Object>findEncoder(org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder.State state, java.lang.Class<?> type)
-
-
-
Method Detail
-
addMessageEncoder
public void addMessageEncoder(java.lang.Class<?> messageType, java.lang.Class<? extends MessageEncoder> encoderClass)Add a new message encoder class for a given message type- Parameters:
messageType- The message typeencoderClass- The encoder class
-
addMessageEncoder
public <T> void addMessageEncoder(java.lang.Class<T> messageType, MessageEncoder<? super T> encoder)Add a new message encoder instance for a given message type- Type Parameters:
T- The message type- Parameters:
messageType- The message typeencoder- The encoder instance
-
addMessageEncoder
public <T> void addMessageEncoder(java.lang.Class<T> messageType, MessageEncoderFactory<? super T> factory)Add a new message encoder factory for a given message type- Type Parameters:
T- The message type- Parameters:
messageType- The message typefactory- The encoder factory
-
addMessageEncoder
public void addMessageEncoder(java.lang.Iterable<java.lang.Class<?>> messageTypes, java.lang.Class<? extends MessageEncoder> encoderClass)Add a new message encoder class for a list of message types- Parameters:
messageTypes- The message typesencoderClass- The encoder class
-
addMessageEncoder
public <T> void addMessageEncoder(java.lang.Iterable<java.lang.Class<? extends T>> messageTypes, MessageEncoder<? super T> encoder)Add a new message instance class for a list of message types- Type Parameters:
T- The message type- Parameters:
messageTypes- The message typesencoder- The encoder instance
-
addMessageEncoder
public <T> void addMessageEncoder(java.lang.Iterable<java.lang.Class<? extends T>> messageTypes, MessageEncoderFactory<? super T> factory)Add a new message encoder factory for a list of message types- Type Parameters:
T- The message type- Parameters:
messageTypes- The message typesfactory- The encoder factory
-
encode
public void encode(IoSession session, java.lang.Object message, ProtocolEncoderOutput out) throws java.lang.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 (typicallyIoBuffers) intoProtocolEncoderOutput.- Specified by:
encodein interfaceProtocolEncoder- Parameters:
session- The current Sessionmessage- the message to encodeout- TheProtocolEncoderOutputthat will receive the encoded message- Throws:
java.lang.Exception- if the message violated protocol specification
-
findEncoder
protected MessageEncoder<java.lang.Object> findEncoder(org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder.State state, java.lang.Class<?> type)
-
dispose
public void dispose(IoSession session) throws java.lang.Exception
Releases all resources related with this encoder.- Specified by:
disposein interfaceProtocolEncoder- Parameters:
session- The current Session- Throws:
java.lang.Exception- if failed to dispose all resources
-
-