Class PrefixedStringEncoder
- java.lang.Object
-
- org.apache.mina.filter.codec.ProtocolEncoderAdapter
-
- org.apache.mina.filter.codec.prefixedstring.PrefixedStringEncoder
-
- All Implemented Interfaces:
ProtocolEncoder
public class PrefixedStringEncoder extends ProtocolEncoderAdapter
AProtocolEncoder
which encodes a string using a fixed-length length prefix.- Author:
- Apache MINA Project
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MAX_DATA_LENGTH
The default maximum data lengthstatic int
DEFAULT_PREFIX_LENGTH
The default length for the prefix
-
Constructor Summary
Constructors Constructor Description PrefixedStringEncoder()
Creates a new PrefixedStringEncoder instancePrefixedStringEncoder(Charset charset)
Creates a new PrefixedStringEncoder instancePrefixedStringEncoder(Charset charset, int prefixLength)
Creates a new PrefixedStringEncoder instancePrefixedStringEncoder(Charset charset, int prefixLength, int maxDataLength)
Creates a new PrefixedStringEncoder instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
encode(IoSession session, Object message, ProtocolEncoderOutput out)
Encodes higher-level message objects into binary or protocol-specific data.int
getMaxDataLength()
Gets the maximum number of bytes allowed for encoding a single String *int
getPrefixLength()
Gets the length of the length prefix (1, 2, or 4)void
setMaxDataLength(int maxDataLength)
Sets the maximum number of bytes allowed for encoding a single String (including the prefix)void
setPrefixLength(int prefixLength)
Sets the number of bytes used by the length prefix-
Methods inherited from class org.apache.mina.filter.codec.ProtocolEncoderAdapter
dispose
-
-
-
-
Field Detail
-
DEFAULT_PREFIX_LENGTH
public static final int DEFAULT_PREFIX_LENGTH
The default length for the prefix- See Also:
- Constant Field Values
-
DEFAULT_MAX_DATA_LENGTH
public static final int DEFAULT_MAX_DATA_LENGTH
The default maximum data length- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PrefixedStringEncoder
public PrefixedStringEncoder(Charset charset, int prefixLength, int maxDataLength)
Creates a new PrefixedStringEncoder instance- Parameters:
charset
- theCharset
to use for encodingprefixLength
- the length of the prefixmaxDataLength
- maximum number of bytes allowed for a single String
-
PrefixedStringEncoder
public PrefixedStringEncoder(Charset charset, int prefixLength)
Creates a new PrefixedStringEncoder instance- Parameters:
charset
- theCharset
to use for encodingprefixLength
- the length of the prefix
-
PrefixedStringEncoder
public PrefixedStringEncoder(Charset charset)
Creates a new PrefixedStringEncoder instance- Parameters:
charset
- theCharset
to use for encoding
-
PrefixedStringEncoder
public PrefixedStringEncoder()
Creates a new PrefixedStringEncoder instance
-
-
Method Detail
-
setPrefixLength
public void setPrefixLength(int prefixLength)
Sets the number of bytes used by the length prefix- Parameters:
prefixLength
- the length of the length prefix (1, 2, or 4)
-
getPrefixLength
public int getPrefixLength()
Gets the length of the length prefix (1, 2, or 4)- Returns:
- length of the length prefix
-
setMaxDataLength
public void setMaxDataLength(int maxDataLength)
Sets the maximum number of bytes allowed for encoding a single String (including the prefix)The encoder will throw a
IllegalArgumentException
when more bytes are needed to encode a String value. The default value isDEFAULT_MAX_DATA_LENGTH
.- Parameters:
maxDataLength
- maximum number of bytes allowed for encoding a single String
-
getMaxDataLength
public int getMaxDataLength()
Gets the maximum number of bytes allowed for encoding a single String *- Returns:
- maximum number of bytes allowed for encoding a single String (prefix included)
-
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 (typicallyIoBuffer
s) intoProtocolEncoderOutput
.- Parameters:
session
- The current Sessionmessage
- the message to encodeout
- TheProtocolEncoderOutput
that will receive the encoded message- Throws:
Exception
- if the message violated protocol specification
-
-