Home / Class/ ClientEngine Class — netty Architecture

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);
            }
        }
    }

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