Home / Class/ KQueueDomainDatagramChannel Class — netty Architecture

KQueueDomainDatagramChannel Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102["KQueueDomainDatagramChannel"]
  7421b834_335b_6d36_410f_56f2a469f00d["KQueueDomainDatagramChannel.java"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|defined in| 7421b834_335b_6d36_410f_56f2a469f00d
  d101813c_062d_dd07_112e_3cc2b5668ac7["KQueueDomainDatagramChannel()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| d101813c_062d_dd07_112e_3cc2b5668ac7
  3815abf4_35c2_abbe_fe16_e4b10e087eea["KQueueDomainDatagramChannelConfig()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 3815abf4_35c2_abbe_fe16_e4b10e087eea
  1f5de168_2217_71da_2144_c2ee679aa74b["doBind()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 1f5de168_2217_71da_2144_c2ee679aa74b
  c93735c1_518b_fd41_b25c_2f70e7624f12["doClose()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| c93735c1_518b_fd41_b25c_2f70e7624f12
  ad0886e9_79c4_9d20_9d03_150d5dd54407["doConnect()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| ad0886e9_79c4_9d20_9d03_150d5dd54407
  58630b9e_fd0d_a420_312c_05d564ad966d["doDisconnect()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 58630b9e_fd0d_a420_312c_05d564ad966d
  2773be4c_7c62_ed15_1019_b853e3594e6e["doWriteMessage()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 2773be4c_7c62_ed15_1019_b853e3594e6e
  dc4226f1_8d65_b231_0796_e34f5e04d2f6["Object()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| dc4226f1_8d65_b231_0796_e34f5e04d2f6
  fa7b64ae_68e8_0697_d9ad_072022cc8a3c["isActive()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| fa7b64ae_68e8_0697_d9ad_072022cc8a3c
  2c351367_912b_076f_eb4a_fa55691630ca["isConnected()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 2c351367_912b_076f_eb4a_fa55691630ca
  e5bc0ff4_888c_06cc_c724_a310e1214380["DomainSocketAddress()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| e5bc0ff4_888c_06cc_c724_a310e1214380
  d0057187_9479_927c_4541_db74b7994a6d["AbstractKQueueUnsafe()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| d0057187_9479_927c_4541_db74b7994a6d
  4823808b_54de_5038_d670_c3734c498c87["PeerCredentials()"]
  aee0b9ba_3ced_92d5_a3dd_7cc99703a102 -->|method| 4823808b_54de_5038_d670_c3734c498c87

Relationship Graph

Source Code

transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueDomainDatagramChannel.java lines 41–327

public final class KQueueDomainDatagramChannel extends AbstractKQueueDatagramChannel implements DomainDatagramChannel {

    private static final String EXPECTED_TYPES =
            " (expected: " +
                    StringUtil.simpleClassName(DomainDatagramPacket.class) + ", " +
                    StringUtil.simpleClassName(AddressedEnvelope.class) + '<' +
                    StringUtil.simpleClassName(ByteBuf.class) + ", " +
                    StringUtil.simpleClassName(DomainSocketAddress.class) + ">, " +
                    StringUtil.simpleClassName(ByteBuf.class) + ')';

    private volatile boolean connected;
    private volatile DomainSocketAddress local;
    private volatile DomainSocketAddress remote;

    private final KQueueDomainDatagramChannelConfig config;

    public KQueueDomainDatagramChannel() {
        this(newSocketDomainDgram(), false);
    }

    public KQueueDomainDatagramChannel(int fd) {
        this(new BsdSocket(fd), true);
    }

    private KQueueDomainDatagramChannel(BsdSocket socket, boolean active) {
        super(null, socket, active);
        config = new KQueueDomainDatagramChannelConfig(this);
    }

    @Override
    public KQueueDomainDatagramChannelConfig config() {
        return config;
    }

    @Override
    protected void doBind(SocketAddress localAddress) throws Exception {
        super.doBind(localAddress);
        local = (DomainSocketAddress) localAddress;
        active = true;
    }

    @Override
    protected void doClose() throws Exception {
        super.doClose();
        connected = active = false;
        local = null;
        remote = null;
    }

    @Override
    protected boolean doConnect(SocketAddress remoteAddress, SocketAddress localAddress) throws Exception {
        if (super.doConnect(remoteAddress, localAddress)) {
            if (localAddress != null) {
                local = (DomainSocketAddress) localAddress;
            }
            remote = (DomainSocketAddress) remoteAddress;
            connected = true;
            return true;
        }
        return false;
    }

    @Override
    protected void doDisconnect() throws Exception {
        doClose();
    }

    @Override
    protected boolean doWriteMessage(Object msg) throws Exception {
        final ByteBuf data;
        DomainSocketAddress remoteAddress;
        if (msg instanceof AddressedEnvelope) {
            @SuppressWarnings("unchecked")
            AddressedEnvelope<ByteBuf, DomainSocketAddress> envelope =
                    (AddressedEnvelope<ByteBuf, DomainSocketAddress>) msg;
            data = envelope.content();
            remoteAddress = envelope.recipient();
        } else {
            data = (ByteBuf) msg;
            remoteAddress = null;
        }

Frequently Asked Questions

What is the KQueueDomainDatagramChannel class?
KQueueDomainDatagramChannel is a class in the netty codebase, defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueDomainDatagramChannel.java.
Where is KQueueDomainDatagramChannel defined?
KQueueDomainDatagramChannel is defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/KQueueDomainDatagramChannel.java at line 41.

Analyze Your Own Codebase

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

Try Supermodel Free