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
AProtocolEncoderwhich encodes a string using a fixed-length length prefix.- Author:
- Apache MINA Project
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MAX_DATA_LENGTHThe default maximum data lengthstatic intDEFAULT_PREFIX_LENGTHThe 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 voidencode(IoSession session, Object message, ProtocolEncoderOutput out)Encodes higher-level message objects into binary or protocol-specific data.intgetMaxDataLength()Gets the maximum number of bytes allowed for encoding a single String *intgetPrefixLength()Gets the length of the length prefix (1, 2, or 4)voidsetMaxDataLength(int maxDataLength)Sets the maximum number of bytes allowed for encoding a single String (including the prefix)voidsetPrefixLength(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- theCharsetto 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- theCharsetto use for encodingprefixLength- the length of the prefix
-
PrefixedStringEncoder
public PrefixedStringEncoder(Charset charset)
Creates a new PrefixedStringEncoder instance- Parameters:
charset- theCharsetto 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
IllegalArgumentExceptionwhen 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 (typicallyIoBuffers) intoProtocolEncoderOutput.- Parameters:
session- The current Sessionmessage- the message to encodeout- TheProtocolEncoderOutputthat will receive the encoded message- Throws:
Exception- if the message violated protocol specification
-
-