Example usage for io.netty.handler.codec.http2 Http2ConnectionEncoder connection

List of usage examples for io.netty.handler.codec.http2 Http2ConnectionEncoder connection

Introduction

In this page you can find the example usage for io.netty.handler.codec.http2 Http2ConnectionEncoder connection.

Prototype

Http2Connection connection();

Source Link

Document

Provides direct access to the underlying connection.

Usage

From source file:io.grpc.netty.NettyServerHandler.java

License:Apache License

private NettyServerHandler(ChannelPromise channelUnused, final Http2Connection connection,
        ServerTransportListener transportListener,
        List<? extends ServerStreamTracer.Factory> streamTracerFactories, TransportTracer transportTracer,
        Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder, Http2Settings settings,
        int maxMessageSize, long keepAliveTimeInNanos, long keepAliveTimeoutInNanos,
        long maxConnectionIdleInNanos, long maxConnectionAgeInNanos, long maxConnectionAgeGraceInNanos,
        final KeepAliveEnforcer keepAliveEnforcer) {
    super(channelUnused, decoder, encoder, settings);

    final MaxConnectionIdleManager maxConnectionIdleManager;
    if (maxConnectionIdleInNanos == MAX_CONNECTION_IDLE_NANOS_DISABLED) {
        maxConnectionIdleManager = null;
    } else {/*from  w  w w  .ja  v  a2s. c  o m*/
        maxConnectionIdleManager = new MaxConnectionIdleManager(maxConnectionIdleInNanos) {
            @Override
            void close(ChannelHandlerContext ctx) {
                if (gracefulShutdown == null) {
                    gracefulShutdown = new GracefulShutdown("max_idle", null);
                    gracefulShutdown.start(ctx);
                    ctx.flush();
                }
            }
        };
    }

    connection.addListener(new Http2ConnectionAdapter() {
        @Override
        public void onStreamActive(Http2Stream stream) {
            if (connection.numActiveStreams() == 1) {
                keepAliveEnforcer.onTransportActive();
                if (maxConnectionIdleManager != null) {
                    maxConnectionIdleManager.onTransportActive();
                }
            }
        }

        @Override
        public void onStreamClosed(Http2Stream stream) {
            if (connection.numActiveStreams() == 0) {
                keepAliveEnforcer.onTransportIdle();
                if (maxConnectionIdleManager != null) {
                    maxConnectionIdleManager.onTransportIdle();
                }
            }
        }
    });

    checkArgument(maxMessageSize >= 0, "maxMessageSize must be >= 0");
    this.maxMessageSize = maxMessageSize;
    this.keepAliveTimeInNanos = keepAliveTimeInNanos;
    this.keepAliveTimeoutInNanos = keepAliveTimeoutInNanos;
    this.maxConnectionIdleManager = maxConnectionIdleManager;
    this.maxConnectionAgeInNanos = maxConnectionAgeInNanos;
    this.maxConnectionAgeGraceInNanos = maxConnectionAgeGraceInNanos;
    this.keepAliveEnforcer = checkNotNull(keepAliveEnforcer, "keepAliveEnforcer");

    streamKey = encoder.connection().newKey();
    this.transportListener = checkNotNull(transportListener, "transportListener");
    this.streamTracerFactories = checkNotNull(streamTracerFactories, "streamTracerFactories");
    this.transportTracer = checkNotNull(transportTracer, "transportTracer");

    // Set the frame listener on the decoder.
    decoder().frameListener(new FrameListener());
}

From source file:org.jboss.aerogear.webpush.netty.WebPushFrameListener.java

License:Apache License

public void encoder(Http2ConnectionEncoder encoder) {
    this.encoder = encoder;
    Http2Connection connection = encoder.connection();
    pathPropertyKey = connection.newKey();
    resourcePropertyKey = connection.newKey();
    pushReceiptPropertyKey = connection.newKey();
    ttlPropertyKey = connection.newKey();
}