Home / Function/ connect() — netty Function Reference

connect() — netty Function Reference

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

Function java Buffer Telemetry calls 4 called by 2

Entity Profile

Dependency Diagram

graph TD
  de296ec8_0585_b2e9_10fb_e6fbdd21f16f["connect()"]
  48a4b0f2_9a93_c0ec_29eb_423e8fb5ce85["AbstractEpollUnsafe"]
  de296ec8_0585_b2e9_10fb_e6fbdd21f16f -->|defined in| 48a4b0f2_9a93_c0ec_29eb_423e8fb5ce85
  787d0c0e_2985_8740_e71f_9ea9fb74d805["doConnect()"]
  787d0c0e_2985_8740_e71f_9ea9fb74d805 -->|calls| de296ec8_0585_b2e9_10fb_e6fbdd21f16f
  a2aa9020_1497_44ac_ace1_8f2c0cb8fc3d["doConnect0()"]
  a2aa9020_1497_44ac_ace1_8f2c0cb8fc3d -->|calls| de296ec8_0585_b2e9_10fb_e6fbdd21f16f
  e5df1ea4_b861_4381_789a_3b2851d17fe0["isActive()"]
  de296ec8_0585_b2e9_10fb_e6fbdd21f16f -->|calls| e5df1ea4_b861_4381_789a_3b2851d17fe0
  787d0c0e_2985_8740_e71f_9ea9fb74d805["doConnect()"]
  de296ec8_0585_b2e9_10fb_e6fbdd21f16f -->|calls| 787d0c0e_2985_8740_e71f_9ea9fb74d805
  d6ec7c78_ff12_be00_5d69_cfc239574638["fulfillConnectPromise()"]
  de296ec8_0585_b2e9_10fb_e6fbdd21f16f -->|calls| d6ec7c78_ff12_be00_5d69_cfc239574638
  d9ab1040_9ace_496a_a503_4d950b47fbce["close()"]
  de296ec8_0585_b2e9_10fb_e6fbdd21f16f -->|calls| d9ab1040_9ace_496a_a503_4d950b47fbce
  style de296ec8_0585_b2e9_10fb_e6fbdd21f16f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollChannel.java lines 636–693

        @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 = AbstractEpollChannel.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-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollChannel.java.
Where is connect() defined?
connect() is defined in transport-classes-epoll/src/main/java/io/netty/channel/epoll/AbstractEpollChannel.java at line 636.
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