Home / Class/ ReopenReadTimerTask Class — netty Architecture

ReopenReadTimerTask Class — netty Architecture

Architecture documentation for the ReopenReadTimerTask class in AbstractTrafficShapingHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  6b25c5a3_60ff_5947_dd8c_953a33240929["ReopenReadTimerTask"]
  b62614b8_ae82_8ab2_7882_d009f6a3229e["AbstractTrafficShapingHandler.java"]
  6b25c5a3_60ff_5947_dd8c_953a33240929 -->|defined in| b62614b8_ae82_8ab2_7882_d009f6a3229e
  5b58fa00_a407_e8db_8cd8_d733412bb1e9["ReopenReadTimerTask()"]
  6b25c5a3_60ff_5947_dd8c_953a33240929 -->|method| 5b58fa00_a407_e8db_8cd8_d733412bb1e9
  e70be341_45e2_2ba2_5f42_466a29b6017b["run()"]
  6b25c5a3_60ff_5947_dd8c_953a33240929 -->|method| e70be341_45e2_2ba2_5f42_466a29b6017b

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/traffic/AbstractTrafficShapingHandler.java lines 416–458

    static final class ReopenReadTimerTask implements Runnable {
        final ChannelHandlerContext ctx;
        ReopenReadTimerTask(ChannelHandlerContext ctx) {
            this.ctx = ctx;
        }

        @Override
        public void run() {
            Channel channel = ctx.channel();
            ChannelConfig config = channel.config();
            if (!config.isAutoRead() && isHandlerActive(ctx)) {
                // If AutoRead is False and Active is True, user make a direct setAutoRead(false)
                // Then Just reset the status
                if (logger.isDebugEnabled()) {
                    logger.debug("Not unsuspend: " + config.isAutoRead() + ':' +
                            isHandlerActive(ctx));
                }
                channel.attr(READ_SUSPENDED).set(false);
            } else {
                // Anything else allows the handler to reset the AutoRead
                if (logger.isDebugEnabled()) {
                    if (config.isAutoRead() && !isHandlerActive(ctx)) {
                        if (logger.isDebugEnabled()) {
                            logger.debug("Unsuspend: " + config.isAutoRead() + ':' +
                                    isHandlerActive(ctx));
                        }
                    } else {
                        if (logger.isDebugEnabled()) {
                            logger.debug("Normal unsuspend: " + config.isAutoRead() + ':'
                                    + isHandlerActive(ctx));
                        }
                    }
                }
                channel.attr(READ_SUSPENDED).set(false);
                config.setAutoRead(true);
                channel.read();
            }
            if (logger.isDebugEnabled()) {
                logger.debug("Unsuspend final status => " + config.isAutoRead() + ':'
                        + isHandlerActive(ctx));
            }
        }
    }

Frequently Asked Questions

What is the ReopenReadTimerTask class?
ReopenReadTimerTask is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/traffic/AbstractTrafficShapingHandler.java.
Where is ReopenReadTimerTask defined?
ReopenReadTimerTask is defined in handler/src/main/java/io/netty/handler/traffic/AbstractTrafficShapingHandler.java at line 416.

Analyze Your Own Codebase

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

Try Supermodel Free