Home / Function/ connect() — netty Function Reference

connect() — netty Function Reference

Architecture documentation for the connect() function in AbstractKQueueChannel.java from the netty codebase.

Function java Buffer Search calls 4 called by 2

Entity Profile

Dependency Diagram

graph TD
  bbd7c9c1_c4bc_de70_f8db_d09f08d2b040["connect()"]
  db95214c_090e_b762_6cfd_37721de6cf7b["AbstractKQueueUnsafe"]
  bbd7c9c1_c4bc_de70_f8db_d09f08d2b040 -->|defined in| db95214c_090e_b762_6cfd_37721de6cf7b
  67f1ad2f_19a6_0305_1eca_74e51248ffcb["doConnect()"]
  67f1ad2f_19a6_0305_1eca_74e51248ffcb -->|calls| bbd7c9c1_c4bc_de70_f8db_d09f08d2b040
  40290e34_2d02_2ca4_f99e_abc7767dd285["doConnect0()"]
  40290e34_2d02_2ca4_f99e_abc7767dd285 -->|calls| bbd7c9c1_c4bc_de70_f8db_d09f08d2b040
  684a2bb9_79af_cb54_06e1_79f3ed633d1c["isActive()"]
  bbd7c9c1_c4bc_de70_f8db_d09f08d2b040 -->|calls| 684a2bb9_79af_cb54_06e1_79f3ed633d1c
  67f1ad2f_19a6_0305_1eca_74e51248ffcb["doConnect()"]
  bbd7c9c1_c4bc_de70_f8db_d09f08d2b040 -->|calls| 67f1ad2f_19a6_0305_1eca_74e51248ffcb
  65cda6eb_54fc_08fa_109d_821dc9e4f73a["fulfillConnectPromise()"]
  bbd7c9c1_c4bc_de70_f8db_d09f08d2b040 -->|calls| 65cda6eb_54fc_08fa_109d_821dc9e4f73a
  6cfc6ba6_4961_3030_0b05_046c480b76d2["close()"]
  bbd7c9c1_c4bc_de70_f8db_d09f08d2b040 -->|calls| 6cfc6ba6_4961_3030_0b05_046c480b76d2
  style bbd7c9c1_c4bc_de70_f8db_d09f08d2b040 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueChannel.java lines 554–611

        @Override
        public void connect(
                final SocketAddress remoteAddress, final SocketAddress localAddress, final ChannelPromise promise) {
            // Don't mark the connect promise as uncancellable as in fact we can cancel it as it is using
            // non-blocking io.
            if (promise.isDone() || !ensureOpen(promise)) {
                return;
            }

            try {
                if (connectPromise != null) {
                    throw new ConnectionPendingException();
                }

                boolean wasActive = isActive();
                if (doConnect(remoteAddress, localAddress)) {
                    fulfillConnectPromise(promise, wasActive);
                } else {
                    connectPromise = promise;
                    requestedRemoteAddress = remoteAddress;

                    // Schedule connect timeout.
                    final int connectTimeoutMillis = config().getConnectTimeoutMillis();
                    if (connectTimeoutMillis > 0) {
                        connectTimeoutFuture = eventLoop().schedule(new Runnable() {
                            @Override
                            public void run() {
                                ChannelPromise connectPromise = AbstractKQueueChannel.this.connectPromise;
                                if (connectPromise != null && !connectPromise.isDone()
                                        && connectPromise.tryFailure(new ConnectTimeoutException(
                                                "connection timed out after " + connectTimeoutMillis + " ms: " +
                                                        remoteAddress))) {
                                    close(voidPromise());
                                }
                            }
                        }, connectTimeoutMillis, TimeUnit.MILLISECONDS);
                    }

                    promise.addListener(new ChannelFutureListener() {
                        @Override
                        public void operationComplete(ChannelFuture future) {
                            // If the connect future is cancelled we also cancel the timeout and close the
                            // underlying socket.
                            if (future.isCancelled()) {
                                if (connectTimeoutFuture != null) {
                                    connectTimeoutFuture.cancel(false);
                                }
                                connectPromise = null;
                                close(voidPromise());
                            }
                        }
                    });
                }
            } catch (Throwable t) {
                closeIfClosed();
                promise.tryFailure(annotateConnectException(t, remoteAddress));
            }
        }

Domain

Subdomains

Frequently Asked Questions

What does connect() do?
connect() is a function in the netty codebase, defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueChannel.java.
Where is connect() defined?
connect() is defined in transport-classes-kqueue/src/main/java/io/netty/channel/kqueue/AbstractKQueueChannel.java at line 554.
What does connect() call?
connect() calls 4 function(s): close, doConnect, fulfillConnectPromise, isActive.
What calls connect()?
connect() is called by 2 function(s): doConnect, doConnect0.

Analyze Your Own Codebase

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

Try Supermodel Free