Home / Function/ MqttConnectPayload() — netty Function Reference

MqttConnectPayload() — netty Function Reference

Architecture documentation for the MqttConnectPayload() function in MqttDecoder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  05955631_9ad1_8193_ccef_2c8870319b81["MqttConnectPayload()"]
  c4faa729_e212_a3dd_9d90_3e8fd908d755["MqttDecoder"]
  05955631_9ad1_8193_ccef_2c8870319b81 -->|defined in| c4faa729_e212_a3dd_9d90_3e8fd908d755
  98ef5a77_12ad_c763_de85_bb9068059363["decodeString()"]
  05955631_9ad1_8193_ccef_2c8870319b81 -->|calls| 98ef5a77_12ad_c763_de85_bb9068059363
  8cad50bc_08ed_5075_a0f7_de30f00ba977["decodeProperties()"]
  05955631_9ad1_8193_ccef_2c8870319b81 -->|calls| 8cad50bc_08ed_5075_a0f7_de30f00ba977
  1cb12c52_1d9a_4252_9803_cdf9ef0e087a["decodeByteArray()"]
  05955631_9ad1_8193_ccef_2c8870319b81 -->|calls| 1cb12c52_1d9a_4252_9803_cdf9ef0e087a
  2c20bb71_3f3e_3411_a7de_3f584e47d79f["validateNoBytesRemain()"]
  05955631_9ad1_8193_ccef_2c8870319b81 -->|calls| 2c20bb71_3f3e_3411_a7de_3f584e47d79f
  style 05955631_9ad1_8193_ccef_2c8870319b81 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java lines 534–585

    private MqttConnectPayload decodeConnectionPayload(
            ByteBuf buffer,
            int maxClientIdLength,
            MqttConnectVariableHeader mqttConnectVariableHeader) {
        final Result<String> decodedClientId = decodeString(buffer);
        final String decodedClientIdValue = decodedClientId.value;
        final MqttVersion mqttVersion = MqttVersion.fromProtocolNameAndLevel(mqttConnectVariableHeader.name(),
                (byte) mqttConnectVariableHeader.version());
        if (!isValidClientId(mqttVersion, maxClientIdLength, decodedClientIdValue)) {
            throw new MqttIdentifierRejectedException("invalid clientIdentifier: " + decodedClientIdValue);
        }
        int numberOfBytesConsumed = decodedClientId.numberOfBytesConsumed;

        Result<String> decodedWillTopic = null;
        byte[] decodedWillMessage = null;

        final MqttProperties willProperties;
        if (mqttConnectVariableHeader.isWillFlag()) {
            if (mqttVersion == MqttVersion.MQTT_5) {
                final Result<MqttProperties> propertiesResult = decodeProperties(buffer);
                willProperties = propertiesResult.value;
                numberOfBytesConsumed += propertiesResult.numberOfBytesConsumed;
            } else {
                willProperties = MqttProperties.NO_PROPERTIES;
            }
            decodedWillTopic = decodeString(buffer, 0, 32767);
            numberOfBytesConsumed += decodedWillTopic.numberOfBytesConsumed;
            decodedWillMessage = decodeByteArray(buffer);
            numberOfBytesConsumed += decodedWillMessage.length + 2;
        } else {
            willProperties = MqttProperties.NO_PROPERTIES;
        }
        Result<String> decodedUserName = null;
        byte[] decodedPassword = null;
        if (mqttConnectVariableHeader.hasUserName()) {
            decodedUserName = decodeString(buffer);
            numberOfBytesConsumed += decodedUserName.numberOfBytesConsumed;
        }
        if (mqttConnectVariableHeader.hasPassword()) {
            decodedPassword = decodeByteArray(buffer);
            numberOfBytesConsumed += decodedPassword.length + 2;
        }

        validateNoBytesRemain(numberOfBytesConsumed);
        return new MqttConnectPayload(
                        decodedClientId.value,
                        willProperties,
                        decodedWillTopic != null ? decodedWillTopic.value : null,
                        decodedWillMessage,
                        decodedUserName != null ? decodedUserName.value : null,
                        decodedPassword);
    }

Domain

Subdomains

Frequently Asked Questions

What does MqttConnectPayload() do?
MqttConnectPayload() is a function in the netty codebase, defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java.
Where is MqttConnectPayload() defined?
MqttConnectPayload() is defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java at line 534.
What does MqttConnectPayload() call?
MqttConnectPayload() calls 4 function(s): decodeByteArray, decodeProperties, decodeString, validateNoBytesRemain.

Analyze Your Own Codebase

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

Try Supermodel Free