Class DecodingStateProtocolDecoder
- java.lang.Object
-
- org.apache.mina.filter.codec.statemachine.DecodingStateProtocolDecoder
-
- All Implemented Interfaces:
ProtocolDecoder
public class DecodingStateProtocolDecoder extends java.lang.Object implements ProtocolDecoder
ProtocolDecoderwhich uses aDecodingStateto decode data. Use aDecodingStateMachineasDecodingStateto create a state machine which can decode your protocol.NOTE: This is a stateful decoder. You should create one instance per session.
- Author:
- Apache MINA Project
-
-
Constructor Summary
Constructors Constructor Description DecodingStateProtocolDecoder(DecodingState state)Creates a new instance using the specifiedDecodingStateinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)Decodes binary or protocol-specific content into higher-level message objects.voiddispose(IoSession session)Releases all resources related with this decoder.voidfinishDecode(IoSession session, ProtocolDecoderOutput out)Invoked when the specified session is closed.
-
-
-
Constructor Detail
-
DecodingStateProtocolDecoder
public DecodingStateProtocolDecoder(DecodingState state)
Creates a new instance using the specifiedDecodingStateinstance.- Parameters:
state- theDecodingState.- Throws:
java.lang.IllegalArgumentException- if the specified state isnull.
-
-
Method Detail
-
decode
public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws java.lang.Exception
Decodes binary or protocol-specific content into higher-level message objects. MINA invokesProtocolDecoder.decode(IoSession, IoBuffer, ProtocolDecoderOutput)method with read data, and then the decoder implementation puts decoded messages intoProtocolDecoderOutput.- Specified by:
decodein interfaceProtocolDecoder- Parameters:
session- The current Sessionin- the buffer to decodeout- TheProtocolDecoderOutputthat will receive the decoded message- Throws:
java.lang.Exception- if the read data violated protocol specification
-
finishDecode
public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws java.lang.Exception
Invoked when the specified session is closed. 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 thatProtocolDecoder.decode(IoSession, IoBuffer, ProtocolDecoderOutput)method didn't process completely.- Specified by:
finishDecodein interfaceProtocolDecoder- Parameters:
session- The current Sessionout- TheProtocolDecoderOutputthat contains the decoded message- Throws:
java.lang.Exception- if the read data violated protocol specification
-
dispose
public void dispose(IoSession session) throws java.lang.Exception
Releases all resources related with this decoder.- Specified by:
disposein interfaceProtocolDecoder- Parameters:
session- The current Session- Throws:
java.lang.Exception- if failed to dispose all resources
-
-