Class PrefixedStringCodecFactory
- java.lang.Object
-
- org.apache.mina.filter.codec.prefixedstring.PrefixedStringCodecFactory
-
- All Implemented Interfaces:
ProtocolCodecFactory
public class PrefixedStringCodecFactory extends Object implements ProtocolCodecFactory
AProtocolCodecFactorythat performs encoding and decoding of a Java String object using a fixed-length length prefix.- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description PrefixedStringCodecFactory()Creates a new PrefixedStringCodecFactory instancePrefixedStringCodecFactory(Charset charset)Creates a new PrefixedStringCodecFactory instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ProtocolDecodergetDecoder(IoSession session)Returns a new (or reusable) instance ofProtocolDecoderwhich decodes binary or protocol-specific data into message objects.intgetDecoderMaxDataLength()intgetDecoderPrefixLength()Gets the length of the length prefix (1, 2, or 4) used by the decoderProtocolEncodergetEncoder(IoSession session)Returns a new (or reusable) instance ofProtocolEncoderwhich encodes message objects into binary or protocol-specific data.intgetEncoderMaxDataLength()Returns the allowed maximum size of an encoded string.intgetEncoderPrefixLength()Gets the length of the length prefix (1, 2, or 4) used by the encodervoidsetDecoderMaxDataLength(int maxDataLength)Sets the maximum allowed value specified as data length in the decoded datavoidsetDecoderPrefixLength(int prefixLength)Sets the length of the prefix used by the decodervoidsetEncoderMaxDataLength(int maxDataLength)Sets the allowed maximum size of an encoded String.voidsetEncoderPrefixLength(int prefixLength)Sets the length of the prefix used by the encoder
-
-
-
Constructor Detail
-
PrefixedStringCodecFactory
public PrefixedStringCodecFactory(Charset charset)
Creates a new PrefixedStringCodecFactory instance- Parameters:
charset- TheCharsetto use for encoding or decoding
-
PrefixedStringCodecFactory
public PrefixedStringCodecFactory()
Creates a new PrefixedStringCodecFactory instance
-
-
Method Detail
-
getEncoderMaxDataLength
public int getEncoderMaxDataLength()
Returns the allowed maximum size of an encoded string. If the size of the encoded String exceeds this value, the encoder will throw aIllegalArgumentException. The default value isPrefixedStringEncoder.DEFAULT_MAX_DATA_LENGTH.This method does the same job as
PrefixedStringEncoder.setMaxDataLength(int).- Returns:
- the allowed maximum size of an encoded string.
-
setEncoderMaxDataLength
public void setEncoderMaxDataLength(int maxDataLength)
Sets the allowed maximum size of an encoded String. If the size of the encoded String exceeds this value, the encoder will throw aIllegalArgumentException. The default value isPrefixedStringEncoder.DEFAULT_MAX_DATA_LENGTH.This method does the same job as
PrefixedStringEncoder.getMaxDataLength().- Parameters:
maxDataLength- allowed maximum size of an encoded String.
-
getDecoderMaxDataLength
public int getDecoderMaxDataLength()
- Returns:
- the allowed maximum size of a decoded string.
This method does the same job as
PrefixedStringEncoder.setMaxDataLength(int). - See Also:
setDecoderMaxDataLength(int)
-
setDecoderMaxDataLength
public void setDecoderMaxDataLength(int maxDataLength)
Sets the maximum allowed value specified as data length in the decoded dataUseful for preventing an OutOfMemory attack by the peer. The decoder will throw a
BufferDataExceptionwhen data length specified in the incoming data is greater than maxDataLength The default value isPrefixedStringDecoder.DEFAULT_MAX_DATA_LENGTH.This method does the same job as
PrefixedStringDecoder.setMaxDataLength(int).- Parameters:
maxDataLength- maximum allowed value specified as data length in the incoming data
-
setDecoderPrefixLength
public void setDecoderPrefixLength(int prefixLength)
Sets the length of the prefix used by the decoder- Parameters:
prefixLength- the length of the length prefix (1, 2, or 4)
-
getDecoderPrefixLength
public int getDecoderPrefixLength()
Gets the length of the length prefix (1, 2, or 4) used by the decoder- Returns:
- length of the length prefix
-
setEncoderPrefixLength
public void setEncoderPrefixLength(int prefixLength)
Sets the length of the prefix used by the encoder- Parameters:
prefixLength- the length of the length prefix (1, 2, or 4)
-
getEncoderPrefixLength
public int getEncoderPrefixLength()
Gets the length of the length prefix (1, 2, or 4) used by the encoder- Returns:
- length of the length prefix
-
getEncoder
public ProtocolEncoder getEncoder(IoSession session) throws Exception
Returns a new (or reusable) instance ofProtocolEncoderwhich encodes message objects into binary or protocol-specific data.- Specified by:
getEncoderin interfaceProtocolCodecFactory- Parameters:
session- The current session- Returns:
- The encoder instance
- Throws:
Exception- If an error occurred while retrieving the encoder
-
getDecoder
public ProtocolDecoder getDecoder(IoSession session) throws Exception
Returns a new (or reusable) instance ofProtocolDecoderwhich decodes binary or protocol-specific data into message objects.- Specified by:
getDecoderin interfaceProtocolCodecFactory- Parameters:
session- The current session- Returns:
- The decoder instance
- Throws:
Exception- If an error occurred while retrieving the decoder
-
-