connect() — netty Function Reference
Architecture documentation for the connect() function in AbstractEpollChannel.java from the netty codebase.
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
Called By
Source
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