Class DemuxingProtocolEncoder
- java.lang.Object
-
- org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder
-
- All Implemented Interfaces:
ProtocolEncoder
public class DemuxingProtocolEncoder extends 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 callsuper.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(Class<?> messageType, Class<? extends MessageEncoder> encoderClass)Add a new message encoder class for a given message type<T> voidaddMessageEncoder(Class<T> messageType, MessageEncoder<? super T> encoder)Add a new message encoder instance for a given message type<T> voidaddMessageEncoder(Class<T> messageType, MessageEncoderFactory<? super T> factory)Add a new message encoder factory for a given message typevoidaddMessageEncoder(Iterable<Class<?>> messageTypes, Class<? extends MessageEncoder> encoderClass)Add a new message encoder class for a list of message types<T> voidaddMessageEncoder(Iterable<Class<? extends T>> messageTypes, MessageEncoder<? super T> encoder)Add a new message instance class for a list of message types<T> voidaddMessageEncoder(Iterable<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, 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)
-
-
-
Method Detail
-
addMessageEncoder
public void addMessageEncoder(Class<?> messageType, 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(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(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(Iterable<Class<?>> messageTypes, 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(Iterable<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(Iterable<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, 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 (typicallyIoBuffers) intoProtocolEncoderOutput.- Specified by:
encodein interfaceProtocolEncoder- Parameters:
session- The current Sessionmessage- the message to encodeout- TheProtocolEncoderOutputthat will receive the encoded message- Throws:
Exception- if the message violated protocol specification
-
findEncoder
protected MessageEncoder<Object> findEncoder(org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder.State state, Class<?> type)
-
dispose
public void dispose(IoSession session) throws Exception
Releases all resources related with this encoder.- Specified by:
disposein interfaceProtocolEncoder- Parameters:
session- The current Session- Throws:
Exception- if failed to dispose all resources
-
-