Home / Function/ dequeue() — netty Function Reference

dequeue() — netty Function Reference

Architecture documentation for the dequeue() function in FlowControlHandler.java from the netty codebase.

Function java Buffer Allocators calls 2 called by 4

Entity Profile

Dependency Diagram

graph TD
  231cc677_f63d_f911_377d_62f5edbedf36["dequeue()"]
  a378d3b4_7977_a8fc_c1dd_b695ec779172["FlowControlHandler"]
  231cc677_f63d_f911_377d_62f5edbedf36 -->|defined in| a378d3b4_7977_a8fc_c1dd_b695ec779172
  cd6f0428_f8e3_c46a_35a0_7f323a7ab542["handlerRemoved()"]
  cd6f0428_f8e3_c46a_35a0_7f323a7ab542 -->|calls| 231cc677_f63d_f911_377d_62f5edbedf36
  f4d16c7c_e26b_f445_c529_6abbac58ed56["read()"]
  f4d16c7c_e26b_f445_c529_6abbac58ed56 -->|calls| 231cc677_f63d_f911_377d_62f5edbedf36
  ab1fcb76_21ea_cee4_50e0_0d3247fda36a["channelRead()"]
  ab1fcb76_21ea_cee4_50e0_0d3247fda36a -->|calls| 231cc677_f63d_f911_377d_62f5edbedf36
  7521bde4_9626_8e3b_0f5d_4bde6e9ffb9d["channelReadComplete()"]
  7521bde4_9626_8e3b_0f5d_4bde6e9ffb9d -->|calls| 231cc677_f63d_f911_377d_62f5edbedf36
  f4d16c7c_e26b_f445_c529_6abbac58ed56["read()"]
  231cc677_f63d_f911_377d_62f5edbedf36 -->|calls| f4d16c7c_e26b_f445_c529_6abbac58ed56
  850596a6_2ddb_8197_48b4_73aca6bdc7f6["recycle()"]
  231cc677_f63d_f911_377d_62f5edbedf36 -->|calls| 850596a6_2ddb_8197_48b4_73aca6bdc7f6
  style 231cc677_f63d_f911_377d_62f5edbedf36 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/flow/FlowControlHandler.java lines 189–217

    private int dequeue(ChannelHandlerContext ctx, int minConsume) {
        int consumed = 0;

        // fireChannelRead(...) may call ctx.read() and so this method may reentrance. Because of this we need to
        // check if queue was set to null in the meantime and if so break the loop.
        while (queue != null && (consumed < minConsume || config.isAutoRead())) {
            Object msg = queue.poll();
            if (msg == null) {
                break;
            }

            ++consumed;
            ctx.fireChannelRead(msg);
        }

        // We're firing a completion event every time one (or more)
        // messages were consumed and the queue ended up being drained
        // to an empty state.
        if (queue != null && queue.isEmpty()) {
            queue.recycle();
            queue = null;

            if (consumed > 0) {
                ctx.fireChannelReadComplete();
            }
        }

        return consumed;
    }

Domain

Subdomains

Frequently Asked Questions

What does dequeue() do?
dequeue() is a function in the netty codebase, defined in handler/src/main/java/io/netty/handler/flow/FlowControlHandler.java.
Where is dequeue() defined?
dequeue() is defined in handler/src/main/java/io/netty/handler/flow/FlowControlHandler.java at line 189.
What does dequeue() call?
dequeue() calls 2 function(s): read, recycle.
What calls dequeue()?
dequeue() is called by 4 function(s): channelRead, channelReadComplete, handlerRemoved, read.

Analyze Your Own Codebase

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

Try Supermodel Free