Interface MessageDecoder
-
- All Known Implementing Classes:
MessageDecoderAdapter
public interface MessageDecoder
Decodes a certain type of messages.We didn't provide any dispose method for
MessageDecoder
because it can give you performance penalty in case you have a lot of message types to handle.- Author:
- Apache MINA Project
- See Also:
DemuxingProtocolDecoder
,MessageDecoderFactory
-
-
Field Summary
Fields Modifier and Type Field Description static MessageDecoderResult
NEED_DATA
Represents a result fromdecodable(IoSession, IoBuffer)
anddecode(IoSession, IoBuffer, ProtocolDecoderOutput)
.static MessageDecoderResult
NOT_OK
Represents a result fromdecodable(IoSession, IoBuffer)
anddecode(IoSession, IoBuffer, ProtocolDecoderOutput)
.static MessageDecoderResult
OK
Represents a result fromdecodable(IoSession, IoBuffer)
anddecode(IoSession, IoBuffer, ProtocolDecoderOutput)
.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description MessageDecoderResult
decodable(IoSession session, IoBuffer in)
Checks the specified buffer is decodable by this decoder.MessageDecoderResult
decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)
Decodes binary or protocol-specific content into higher-level message objects.void
finishDecode(IoSession session, ProtocolDecoderOutput out)
Invoked when the specified session is closed while this decoder was parsing the data.
-
-
-
Field Detail
-
OK
static final MessageDecoderResult OK
Represents a result fromdecodable(IoSession, IoBuffer)
anddecode(IoSession, IoBuffer, ProtocolDecoderOutput)
. Please refer to each method's documentation for detailed explanation.
-
NEED_DATA
static final MessageDecoderResult NEED_DATA
Represents a result fromdecodable(IoSession, IoBuffer)
anddecode(IoSession, IoBuffer, ProtocolDecoderOutput)
. Please refer to each method's documentation for detailed explanation.
-
NOT_OK
static final MessageDecoderResult NOT_OK
Represents a result fromdecodable(IoSession, IoBuffer)
anddecode(IoSession, IoBuffer, ProtocolDecoderOutput)
. Please refer to each method's documentation for detailed explanation.
-
-
Method Detail
-
decodable
MessageDecoderResult decodable(IoSession session, IoBuffer in)
Checks the specified buffer is decodable by this decoder.- Parameters:
session
- The current sessionin
- The buffer containing the data to decode- Returns:
OK
if this decoder can decode the specified buffer.NOT_OK
if this decoder cannot decode the specified buffer.NEED_DATA
if more data is required to determine if the specified buffer is decodable (OK
) or not decodableNOT_OK
.
-
decode
MessageDecoderResult decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception
Decodes binary or protocol-specific content into higher-level message objects. MINA invokesdecode(IoSession, IoBuffer, ProtocolDecoderOutput)
method with read data, and then the decoder implementation puts decoded messages intoProtocolDecoderOutput
.- Parameters:
session
- The current sessionin
- The buffer containing the data to decodeout
- The instance ofProtocolDecoderOutput
that will receive the decoded messages- Returns:
OK
if you finished decoding messages successfully.NEED_DATA
if you need more data to finish decoding current message.NOT_OK
if you cannot decode current message due to protocol specification violation.- Throws:
Exception
- if the read data violated protocol specification
-
finishDecode
void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception
Invoked when the specified session is closed while this decoder was parsing the data. This method is useful when you deal with the protocol which doesn't specify the length of a message such as HTTP response without content-length header. Implement this method to process the remaining data thatdecode(IoSession, IoBuffer, ProtocolDecoderOutput)
method didn't process completely.- Parameters:
session
- The current sessionout
- The instance ofProtocolDecoderOutput
that contains the decoded messages- Throws:
Exception
- if the read data violated protocol specification
-
-