Home / Function/ MqttSubscribePayload() — netty Function Reference

MqttSubscribePayload() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  dafb0c77_afbe_2431_b069_83b9a0dbf518["MqttSubscribePayload()"]
  c4faa729_e212_a3dd_9d90_3e8fd908d755["MqttDecoder"]
  dafb0c77_afbe_2431_b069_83b9a0dbf518 -->|defined in| c4faa729_e212_a3dd_9d90_3e8fd908d755
  98ef5a77_12ad_c763_de85_bb9068059363["decodeString()"]
  dafb0c77_afbe_2431_b069_83b9a0dbf518 -->|calls| 98ef5a77_12ad_c763_de85_bb9068059363
  2c20bb71_3f3e_3411_a7de_3f584e47d79f["validateNoBytesRemain()"]
  dafb0c77_afbe_2431_b069_83b9a0dbf518 -->|calls| 2c20bb71_3f3e_3411_a7de_3f584e47d79f
  style dafb0c77_afbe_2431_b069_83b9a0dbf518 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java lines 587–612

    private MqttSubscribePayload decodeSubscribePayload(
            ByteBuf buffer) {
        final List<MqttTopicSubscription> subscribeTopics = new ArrayList<MqttTopicSubscription>();
        int numberOfBytesConsumed = 0;
        while (numberOfBytesConsumed < bytesRemainingInVariablePart) {
            final Result<String> decodedTopicName = decodeString(buffer);
            numberOfBytesConsumed += decodedTopicName.numberOfBytesConsumed;
            //See 3.8.3.1 Subscription Options of MQTT 5.0 specification for optionByte details
            final short optionByte = buffer.readUnsignedByte();

            MqttQoS qos = MqttQoS.valueOf(optionByte & 0x03);
            boolean noLocal = ((optionByte & 0x04) >> 2) == 1;
            boolean retainAsPublished = ((optionByte & 0x08) >> 3) == 1;
            RetainedHandlingPolicy retainHandling = RetainedHandlingPolicy.valueOf((optionByte & 0x30) >> 4);

            final MqttSubscriptionOption subscriptionOption = new MqttSubscriptionOption(qos,
                    noLocal,
                    retainAsPublished,
                    retainHandling);

            numberOfBytesConsumed++;
            subscribeTopics.add(new MqttTopicSubscription(decodedTopicName.value, subscriptionOption));
        }
        validateNoBytesRemain(numberOfBytesConsumed);
        return new MqttSubscribePayload(subscribeTopics);
    }

Domain

Subdomains

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free