ClientEngine Class — netty Architecture
Architecture documentation for the ClientEngine class in ConscryptAlpnSslEngine.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD cf0a1b16_6ca2_f98f_b8d1_d62a3e799753["ClientEngine"] e51572cf_5b72_0ca1_2650_98c58f05ef33["ConscryptAlpnSslEngine.java"] cf0a1b16_6ca2_f98f_b8d1_d62a3e799753 -->|defined in| e51572cf_5b72_0ca1_2650_98c58f05ef33 925a3e50_b672_ff24_705b_00a32a6e9d08["ClientEngine()"] cf0a1b16_6ca2_f98f_b8d1_d62a3e799753 -->|method| 925a3e50_b672_ff24_705b_00a32a6e9d08 dbbac426_4e5d_137b_2211_c0be3afd86c5["selectProtocol()"] cf0a1b16_6ca2_f98f_b8d1_d62a3e799753 -->|method| dbbac426_4e5d_137b_2211_c0be3afd86c5
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/ConscryptAlpnSslEngine.java lines 112–139
private static final class ClientEngine extends ConscryptAlpnSslEngine {
private final ProtocolSelectionListener protocolListener;
ClientEngine(SSLEngine engine, ByteBufAllocator alloc,
JdkApplicationProtocolNegotiator applicationNegotiator) {
super(engine, alloc, applicationNegotiator.protocols());
// Register for completion of the handshake.
Conscrypt.setHandshakeListener(engine, new HandshakeListener() {
@Override
public void onHandshakeFinished() throws SSLException {
selectProtocol();
}
});
protocolListener = checkNotNull(applicationNegotiator
.protocolListenerFactory().newListener(this, applicationNegotiator.protocols()),
"protocolListener");
}
private void selectProtocol() throws SSLException {
String protocol = Conscrypt.getApplicationProtocol(getWrappedEngine());
try {
protocolListener.selected(protocol);
} catch (Throwable e) {
throw toSSLHandshakeException(e);
}
}
}
Source
Frequently Asked Questions
What is the ClientEngine class?
ClientEngine is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/ConscryptAlpnSslEngine.java.
Where is ClientEngine defined?
ClientEngine is defined in handler/src/main/java/io/netty/handler/ssl/ConscryptAlpnSslEngine.java at line 112.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free