MqttFixedHeader() — netty Function Reference
Architecture documentation for the MqttFixedHeader() function in MqttDecoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD f52b822d_d755_b4dd_2485_216ecd243ffb["MqttFixedHeader()"] c4faa729_e212_a3dd_9d90_3e8fd908d755["MqttDecoder"] f52b822d_d755_b4dd_2485_216ecd243ffb -->|defined in| c4faa729_e212_a3dd_9d90_3e8fd908d755 0e76d845_8de4_7a4c_bd45_465942f0d8f3["parseRemainingLength()"] f52b822d_d755_b4dd_2485_216ecd243ffb -->|calls| 0e76d845_8de4_7a4c_bd45_465942f0d8f3 style f52b822d_d755_b4dd_2485_216ecd243ffb fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java lines 185–250
private static MqttFixedHeader decodeFixedHeader(ChannelHandlerContext ctx, ByteBuf buffer) {
short b1 = buffer.readUnsignedByte();
MqttMessageType messageType = MqttMessageType.valueOf(b1 >> 4);
boolean dupFlag = (b1 & 0x08) == 0x08;
int qosLevel = (b1 & 0x06) >> 1;
boolean retain = (b1 & 0x01) != 0;
switch (messageType) {
case PUBLISH:
if (qosLevel == 3) {
throw new DecoderException("Illegal QOS Level in fixed header of PUBLISH message ("
+ qosLevel + ')');
}
break;
case PUBREL:
case SUBSCRIBE:
case UNSUBSCRIBE:
if (dupFlag) {
throw new DecoderException("Illegal BIT 3 in fixed header of " + messageType
+ " message, must be 0, found 1");
}
if (qosLevel != 1) {
throw new DecoderException("Illegal QOS Level in fixed header of " + messageType
+ " message, must be 1, found " + qosLevel);
}
if (retain) {
throw new DecoderException("Illegal BIT 0 in fixed header of " + messageType
+ " message, must be 0, found 1");
}
break;
case AUTH:
case CONNACK:
case CONNECT:
case DISCONNECT:
case PINGREQ:
case PINGRESP:
case PUBACK:
case PUBCOMP:
case PUBREC:
case SUBACK:
case UNSUBACK:
if (dupFlag) {
throw new DecoderException("Illegal BIT 3 in fixed header of " + messageType
+ " message, must be 0, found 1");
}
if (qosLevel != 0) {
throw new DecoderException("Illegal BIT 2 or 1 in fixed header of " + messageType
+ " message, must be 0, found " + qosLevel);
}
if (retain) {
throw new DecoderException("Illegal BIT 0 in fixed header of " + messageType
+ " message, must be 0, found 1");
}
break;
default:
throw new DecoderException("Unknown message type, do not know how to validate fixed header");
}
int remainingLength = parseRemainingLength(buffer, messageType);
MqttFixedHeader decodedFixedHeader =
new MqttFixedHeader(messageType, dupFlag, MqttQoS.valueOf(qosLevel), retain, remainingLength);
return validateFixedHeader(ctx, resetUnusedFields(decodedFixedHeader));
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does MqttFixedHeader() do?
MqttFixedHeader() is a function in the netty codebase, defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java.
Where is MqttFixedHeader() defined?
MqttFixedHeader() is defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java at line 185.
What does MqttFixedHeader() call?
MqttFixedHeader() calls 1 function(s): parseRemainingLength.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free