public final class MqttDecoder extends ReplayingDecoder<MqttDecoder.DecoderState>
Modifier and Type | Class and Description |
---|---|
(package private) static class |
MqttDecoder.DecoderState
States of the decoder.
|
private static class |
MqttDecoder.Result<T> |
ByteToMessageDecoder.Cumulator
ChannelHandler.Sharable
Modifier and Type | Field and Description |
---|---|
private int |
bytesRemainingInVariablePart |
private static int |
DEFAULT_MAX_BYTES_IN_MESSAGE |
private int |
maxBytesInMessage |
private MqttFixedHeader |
mqttFixedHeader |
private java.lang.Object |
variableHeader |
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
Constructor and Description |
---|
MqttDecoder() |
MqttDecoder(int maxBytesInMessage) |
Modifier and Type | Method and Description |
---|---|
protected void |
decode(ChannelHandlerContext ctx,
ByteBuf buffer,
java.util.List<java.lang.Object> out)
Decode the from one
ByteBuf to an other. |
private static MqttDecoder.Result<byte[]> |
decodeByteArray(ByteBuf buffer) |
private static MqttDecoder.Result<MqttConnAckVariableHeader> |
decodeConnAckVariableHeader(ByteBuf buffer) |
private static MqttDecoder.Result<MqttConnectPayload> |
decodeConnectionPayload(ByteBuf buffer,
MqttConnectVariableHeader mqttConnectVariableHeader) |
private static MqttDecoder.Result<MqttConnectVariableHeader> |
decodeConnectionVariableHeader(ByteBuf buffer) |
private static MqttFixedHeader |
decodeFixedHeader(ByteBuf buffer)
Decodes the fixed header.
|
private static MqttDecoder.Result<java.lang.Integer> |
decodeMessageId(ByteBuf buffer) |
private static MqttDecoder.Result<MqttMessageIdVariableHeader> |
decodeMessageIdVariableHeader(ByteBuf buffer) |
private static MqttDecoder.Result<java.lang.Integer> |
decodeMsbLsb(ByteBuf buffer) |
private static MqttDecoder.Result<java.lang.Integer> |
decodeMsbLsb(ByteBuf buffer,
int min,
int max) |
private static MqttDecoder.Result<?> |
decodePayload(ByteBuf buffer,
MqttMessageType messageType,
int bytesRemainingInVariablePart,
java.lang.Object variableHeader)
Decodes the payload.
|
private static MqttDecoder.Result<ByteBuf> |
decodePublishPayload(ByteBuf buffer,
int bytesRemainingInVariablePart) |
private static MqttDecoder.Result<MqttPublishVariableHeader> |
decodePublishVariableHeader(ByteBuf buffer,
MqttFixedHeader mqttFixedHeader) |
private static MqttDecoder.Result<java.lang.String> |
decodeString(ByteBuf buffer) |
private static MqttDecoder.Result<java.lang.String> |
decodeString(ByteBuf buffer,
int minBytes,
int maxBytes) |
private static MqttDecoder.Result<MqttSubAckPayload> |
decodeSubackPayload(ByteBuf buffer,
int bytesRemainingInVariablePart) |
private static MqttDecoder.Result<MqttSubscribePayload> |
decodeSubscribePayload(ByteBuf buffer,
int bytesRemainingInVariablePart) |
private static MqttDecoder.Result<MqttUnsubscribePayload> |
decodeUnsubscribePayload(ByteBuf buffer,
int bytesRemainingInVariablePart) |
private static MqttDecoder.Result<?> |
decodeVariableHeader(ByteBuf buffer,
MqttFixedHeader mqttFixedHeader)
Decodes the variable header (if any)
|
private MqttMessage |
invalidMessage(java.lang.Throwable cause) |
callDecode, checkpoint, checkpoint, state, state
actualReadableBytes, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggered
channelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
ensureNotSharable, handlerAdded, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerAdded
private static final int DEFAULT_MAX_BYTES_IN_MESSAGE
private MqttFixedHeader mqttFixedHeader
private java.lang.Object variableHeader
private int bytesRemainingInVariablePart
private final int maxBytesInMessage
public MqttDecoder()
public MqttDecoder(int maxBytesInMessage)
protected void decode(ChannelHandlerContext ctx, ByteBuf buffer, java.util.List<java.lang.Object> out) throws java.lang.Exception
ByteToMessageDecoder
ByteBuf
to an other. This method will be called till either the input
ByteBuf
has nothing to read when return from this method or till nothing was read from the input
ByteBuf
.decode
in class ByteToMessageDecoder
ctx
- the ChannelHandlerContext
which this ByteToMessageDecoder
belongs tobuffer
- the ByteBuf
from which to read dataout
- the List
to which decoded messages should be addedjava.lang.Exception
- is thrown if an error occursprivate MqttMessage invalidMessage(java.lang.Throwable cause)
private static MqttFixedHeader decodeFixedHeader(ByteBuf buffer)
buffer
- the buffer to decode fromprivate static MqttDecoder.Result<?> decodeVariableHeader(ByteBuf buffer, MqttFixedHeader mqttFixedHeader)
buffer
- the buffer to decode frommqttFixedHeader
- MqttFixedHeader of the same messageprivate static MqttDecoder.Result<MqttConnectVariableHeader> decodeConnectionVariableHeader(ByteBuf buffer)
private static MqttDecoder.Result<MqttConnAckVariableHeader> decodeConnAckVariableHeader(ByteBuf buffer)
private static MqttDecoder.Result<MqttMessageIdVariableHeader> decodeMessageIdVariableHeader(ByteBuf buffer)
private static MqttDecoder.Result<MqttPublishVariableHeader> decodePublishVariableHeader(ByteBuf buffer, MqttFixedHeader mqttFixedHeader)
private static MqttDecoder.Result<java.lang.Integer> decodeMessageId(ByteBuf buffer)
private static MqttDecoder.Result<?> decodePayload(ByteBuf buffer, MqttMessageType messageType, int bytesRemainingInVariablePart, java.lang.Object variableHeader)
buffer
- the buffer to decode frommessageType
- type of the message being decodedbytesRemainingInVariablePart
- bytes remainingvariableHeader
- variable header of the same messageprivate static MqttDecoder.Result<MqttConnectPayload> decodeConnectionPayload(ByteBuf buffer, MqttConnectVariableHeader mqttConnectVariableHeader)
private static MqttDecoder.Result<MqttSubscribePayload> decodeSubscribePayload(ByteBuf buffer, int bytesRemainingInVariablePart)
private static MqttDecoder.Result<MqttSubAckPayload> decodeSubackPayload(ByteBuf buffer, int bytesRemainingInVariablePart)
private static MqttDecoder.Result<MqttUnsubscribePayload> decodeUnsubscribePayload(ByteBuf buffer, int bytesRemainingInVariablePart)
private static MqttDecoder.Result<ByteBuf> decodePublishPayload(ByteBuf buffer, int bytesRemainingInVariablePart)
private static MqttDecoder.Result<java.lang.String> decodeString(ByteBuf buffer)
private static MqttDecoder.Result<java.lang.String> decodeString(ByteBuf buffer, int minBytes, int maxBytes)
private static MqttDecoder.Result<byte[]> decodeByteArray(ByteBuf buffer)
private static MqttDecoder.Result<java.lang.Integer> decodeMsbLsb(ByteBuf buffer)
private static MqttDecoder.Result<java.lang.Integer> decodeMsbLsb(ByteBuf buffer, int min, int max)