Class DemuxingProtocolCodecFactory
- java.lang.Object
-
- org.apache.mina.filter.codec.demux.DemuxingProtocolCodecFactory
-
- All Implemented Interfaces:
ProtocolCodecFactory
public class DemuxingProtocolCodecFactory extends java.lang.Object implements ProtocolCodecFactory
A compositeProtocolCodecFactory
that consists of multipleMessageEncoder
s andMessageDecoder
s.ProtocolEncoder
andProtocolDecoder
this factory returns demultiplex incoming messages and buffers to appropriateMessageEncoder
s andMessageDecoder
s.Disposing resources acquired by
MessageEncoder
andMessageDecoder
Make your
MessageEncoder
andMessageDecoder
to put all resources that need to be released as a session attribute.disposeCodecResources(IoSession)
method will be invoked when a session is closed. OverridedisposeCodecResources(IoSession)
to release the resources you've put as an attribute.We didn't provide any dispose method for
MessageEncoder
andMessageDecoder
because they can give you a big performance penalty in case you have a lot of message types to handle.- See Also:
MessageEncoder
,MessageDecoder
-
-
Constructor Summary
Constructors Constructor Description DemuxingProtocolCodecFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
disposeCodecResources(IoSession session)
Implement this method to release all resources acquired to perform encoding and decoding messages for the specified session.ProtocolDecoder
getDecoder()
Returns a new (or reusable) instance ofProtocolDecoder
which decodes binary or protocol-specific data into message objects.ProtocolEncoder
getEncoder()
Returns a new (or reusable) instance ofProtocolEncoder
which encodes message objects into binary or protocol-specific data.void
register(java.lang.Class<?> encoderOrDecoderClass)
void
register(MessageDecoder decoder)
void
register(MessageDecoderFactory factory)
void
register(MessageEncoder encoder)
void
register(MessageEncoderFactory factory)
-
-
-
Method Detail
-
register
public void register(java.lang.Class<?> encoderOrDecoderClass)
-
register
public void register(MessageEncoder encoder)
-
register
public void register(MessageEncoderFactory factory)
-
register
public void register(MessageDecoder decoder)
-
register
public void register(MessageDecoderFactory factory)
-
getEncoder
public ProtocolEncoder getEncoder() throws java.lang.Exception
Description copied from interface:ProtocolCodecFactory
Returns a new (or reusable) instance ofProtocolEncoder
which encodes message objects into binary or protocol-specific data.- Specified by:
getEncoder
in interfaceProtocolCodecFactory
- Throws:
java.lang.Exception
-
getDecoder
public ProtocolDecoder getDecoder() throws java.lang.Exception
Description copied from interface:ProtocolCodecFactory
Returns a new (or reusable) instance ofProtocolDecoder
which decodes binary or protocol-specific data into message objects.- Specified by:
getDecoder
in interfaceProtocolCodecFactory
- Throws:
java.lang.Exception
-
disposeCodecResources
protected void disposeCodecResources(IoSession session)
Implement this method to release all resources acquired to perform encoding and decoding messages for the specified session. By default, this method does nothing.- Parameters:
session
- the session that requires resource deallocation now
-
-