Home / Class/ EmbeddedChannelWriteReleaseHandlerContext Class — netty Architecture

EmbeddedChannelWriteReleaseHandlerContext Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  19761d4a_4214_0697_9eb4_14da12a01e13["EmbeddedChannelWriteReleaseHandlerContext"]
  ac01f8b4_17ac_9087_1125_58b5daab6844["EmbeddedChannelWriteReleaseHandlerContext.java"]
  19761d4a_4214_0697_9eb4_14da12a01e13 -->|defined in| ac01f8b4_17ac_9087_1125_58b5daab6844
  28b0a4a0_ccfb_1dff_90e7_8cbd182868b7["EmbeddedChannelWriteReleaseHandlerContext()"]
  19761d4a_4214_0697_9eb4_14da12a01e13 -->|method| 28b0a4a0_ccfb_1dff_90e7_8cbd182868b7
  3c91051d_6553_31d1_5bee_38397b05b6da["handleException()"]
  19761d4a_4214_0697_9eb4_14da12a01e13 -->|method| 3c91051d_6553_31d1_5bee_38397b05b6da
  0e816254_d04e_c9fb_43d0_2e4a3db075bf["ChannelFuture()"]
  19761d4a_4214_0697_9eb4_14da12a01e13 -->|method| 0e816254_d04e_c9fb_43d0_2e4a3db075bf

Relationship Graph

Source Code

microbench/src/main/java/io/netty/microbench/channel/EmbeddedChannelWriteReleaseHandlerContext.java lines 24–78

public abstract class EmbeddedChannelWriteReleaseHandlerContext extends EmbeddedChannelHandlerContext {
    protected EmbeddedChannelWriteReleaseHandlerContext(ByteBufAllocator alloc, ChannelHandler handler) {
        this(alloc, handler, new EmbeddedChannel());
    }

    protected EmbeddedChannelWriteReleaseHandlerContext(ByteBufAllocator alloc, ChannelHandler handler,
            EmbeddedChannel channel) {
        super(alloc, handler, channel);
    }

    @Override
    protected abstract void handleException(Throwable t);

    @Override
    public final ChannelFuture write(Object msg) {
        return write(msg, newPromise());
    }

    @Override
    public final ChannelFuture write(Object msg, ChannelPromise promise) {
        try {
            if (msg instanceof ReferenceCounted) {
                ((ReferenceCounted) msg).release();
                promise.setSuccess();
            } else {
                channel().write(msg, promise);
            }
        } catch (Exception e) {
            promise.setFailure(e);
            handleException(e);
        }
        return promise;
    }

    @Override
    public final ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) {
        try {
            if (msg instanceof ReferenceCounted) {
                ((ReferenceCounted) msg).release();
                promise.setSuccess();
            } else {
                channel().writeAndFlush(msg, promise);
            }
        } catch (Exception e) {
            promise.setFailure(e);
            handleException(e);
        }
        return promise;
    }

    @Override
    public final ChannelFuture writeAndFlush(Object msg) {
        return writeAndFlush(msg, newPromise());
    }
}

Frequently Asked Questions

What is the EmbeddedChannelWriteReleaseHandlerContext class?
EmbeddedChannelWriteReleaseHandlerContext is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/channel/EmbeddedChannelWriteReleaseHandlerContext.java.
Where is EmbeddedChannelWriteReleaseHandlerContext defined?
EmbeddedChannelWriteReleaseHandlerContext is defined in microbench/src/main/java/io/netty/microbench/channel/EmbeddedChannelWriteReleaseHandlerContext.java at line 24.

Analyze Your Own Codebase

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

Try Supermodel Free