Class PrefixedStringCodecFactory
- java.lang.Object
-
- org.apache.mina.filter.codec.prefixedstring.PrefixedStringCodecFactory
-
- All Implemented Interfaces:
ProtocolCodecFactory
public class PrefixedStringCodecFactory extends Object implements ProtocolCodecFactory
AProtocolCodecFactory
that 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 ProtocolDecoder
getDecoder(IoSession session)
Returns a new (or reusable) instance ofProtocolDecoder
which decodes binary or protocol-specific data into message objects.int
getDecoderMaxDataLength()
int
getDecoderPrefixLength()
Gets the length of the length prefix (1, 2, or 4) used by the decoderProtocolEncoder
getEncoder(IoSession session)
Returns a new (or reusable) instance ofProtocolEncoder
which encodes message objects into binary or protocol-specific data.int
getEncoderMaxDataLength()
Returns the allowed maximum size of an encoded string.int
getEncoderPrefixLength()
Gets the length of the length prefix (1, 2, or 4) used by the encodervoid
setDecoderMaxDataLength(int maxDataLength)
Sets the maximum allowed value specified as data length in the decoded datavoid
setDecoderPrefixLength(int prefixLength)
Sets the length of the prefix used by the decodervoid
setEncoderMaxDataLength(int maxDataLength)
Sets the allowed maximum size of an encoded String.void
setEncoderPrefixLength(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
- TheCharset
to 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
BufferDataException
when 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 ofProtocolEncoder
which encodes message objects into binary or protocol-specific data.- Specified by:
getEncoder
in 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 ofProtocolDecoder
which decodes binary or protocol-specific data into message objects.- Specified by:
getDecoder
in interfaceProtocolCodecFactory
- Parameters:
session
- The current session- Returns:
- The decoder instance
- Throws:
Exception
- If an error occurred while retrieving the decoder
-
-