Class DemuxingProtocolEncoder
java.lang.Object
org.apache.mina.filter.codec.demux.DemuxingProtocolEncoder
- All Implemented Interfaces:
ProtocolEncoder
A composite Disposing resources acquired by
ProtocolEncoder that demultiplexes incoming message
encoding requests into an appropriate MessageEncoder.
Disposing resources acquired by MessageEncoder
Override dispose(IoSession) method. Please don't forget to call
super.dispose().
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static classprivate class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Class<?>[]private static final AttributeKeyprivate final Map<Class<?>, MessageEncoderFactory> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMessageEncoder(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 typesvoidReleases 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(DemuxingProtocolEncoder.State state, Class<?> type) private MessageEncoder<Object> findEncoder(DemuxingProtocolEncoder.State state, Class<?> type, Set<Class<?>> triedClasses) private DemuxingProtocolEncoder.State
-
Field Details
-
STATE
-
type2encoderFactory
-
EMPTY_PARAMS
-
-
Constructor Details
-
DemuxingProtocolEncoder
public DemuxingProtocolEncoder()
-
-
Method Details
-
addMessageEncoder
Add a new message encoder class for a given message type- Parameters:
messageType- The message typeencoderClass- The encoder class
-
addMessageEncoder
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
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
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
-
findEncoder
private MessageEncoder<Object> findEncoder(DemuxingProtocolEncoder.State state, Class<?> type, Set<Class<?>> triedClasses) -
dispose
Releases all resources related with this encoder.- Specified by:
disposein interfaceProtocolEncoder- Parameters:
session- The current Session- Throws:
Exception- if failed to dispose all resources
-
getState
- Throws:
Exception
-