Home / Class/ MqttMessage Class — netty Architecture

MqttMessage Class — netty Architecture

Architecture documentation for the MqttMessage class in MqttMessage.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f["MqttMessage"]
  6f14cd4e_5b98_537d_992c_69d6ec72feaa["MqttMessage.java"]
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f -->|defined in| 6f14cd4e_5b98_537d_992c_69d6ec72feaa
  ccb45c97_a672_28db_7c51_a635e60fdd0e["MqttMessage()"]
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f -->|method| ccb45c97_a672_28db_7c51_a635e60fdd0e
  f45dc1c8_e939_32e8_eec9_426b33f22666["MqttFixedHeader()"]
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f -->|method| f45dc1c8_e939_32e8_eec9_426b33f22666
  6cbc6ff0_0fdc_b034_de04_75520d3ff8bc["Object()"]
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f -->|method| 6cbc6ff0_0fdc_b034_de04_75520d3ff8bc
  ea71d148_8a5e_a55b_4ba9_a3e3c8a5f89b["DecoderResult()"]
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f -->|method| ea71d148_8a5e_a55b_4ba9_a3e3c8a5f89b
  69d67092_c4b2_6234_e861_1f88a6b5f549["String()"]
  0cc71e7b_f056_138e_1a7c_d7e2673ef13f -->|method| 69d67092_c4b2_6234_e861_1f88a6b5f549

Relationship Graph

Source Code

codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessage.java lines 25–92

public class MqttMessage {

    private final MqttFixedHeader mqttFixedHeader;
    private final Object variableHeader;
    private final Object payload;
    private final DecoderResult decoderResult;

    // Constants for fixed-header only message types with all flags set to 0 (see
    // https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Table_2.2_-)
    public static final MqttMessage PINGREQ = new MqttMessage(new MqttFixedHeader(MqttMessageType.PINGREQ, false,
            MqttQoS.AT_MOST_ONCE, false, 0));

    public static final MqttMessage PINGRESP = new MqttMessage(new MqttFixedHeader(MqttMessageType.PINGRESP, false,
            MqttQoS.AT_MOST_ONCE, false, 0));

    public static final MqttMessage DISCONNECT = new MqttMessage(new MqttFixedHeader(MqttMessageType.DISCONNECT, false,
            MqttQoS.AT_MOST_ONCE, false, 0));

    public MqttMessage(MqttFixedHeader mqttFixedHeader) {
        this(mqttFixedHeader, null, null);
    }

    public MqttMessage(MqttFixedHeader mqttFixedHeader, Object variableHeader) {
        this(mqttFixedHeader, variableHeader, null);
    }

    public MqttMessage(MqttFixedHeader mqttFixedHeader, Object variableHeader, Object payload) {
        this(mqttFixedHeader, variableHeader, payload, DecoderResult.SUCCESS);
    }

    public MqttMessage(
            MqttFixedHeader mqttFixedHeader,
            Object variableHeader,
            Object payload,
            DecoderResult decoderResult) {
        this.mqttFixedHeader = mqttFixedHeader;
        this.variableHeader = variableHeader;
        this.payload = payload;
        this.decoderResult = decoderResult;
    }

    public MqttFixedHeader fixedHeader() {
        return mqttFixedHeader;
    }

    public Object variableHeader() {
        return variableHeader;
    }

    public Object payload() {
        return payload;
    }

    public DecoderResult decoderResult() {
        return decoderResult;
    }

    @Override
    public String toString() {
        return new StringBuilder(StringUtil.simpleClassName(this))
            .append('[')
            .append("fixedHeader=").append(fixedHeader() != null ? fixedHeader().toString() : "")
            .append(", variableHeader=").append(variableHeader() != null ? variableHeader.toString() : "")
            .append(", payload=").append(payload() != null ? payload.toString() : "")
            .append(']')
            .toString();
    }
}

Frequently Asked Questions

What is the MqttMessage class?
MqttMessage is a class in the netty codebase, defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessage.java.
Where is MqttMessage defined?
MqttMessage is defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttMessage.java at line 25.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free