Example usage for io.netty.handler.codec.http2 Http2Stream state

List of usage examples for io.netty.handler.codec.http2 Http2Stream state

Introduction

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

Prototype

State state();

Source Link

Document

Gets the state of this stream.

Usage

From source file:com.linecorp.armeria.common.http.Http2GoAwayListener.java

License:Apache License

@Override
public void onStreamRemoved(Http2Stream stream) {
    if (stream.id() == 1) {
        logger.debug("{} HTTP/2 upgrade stream removed: {}", ch, stream.state());
    }/*from  w w w  .j a v  a  2  s  .c  o  m*/
}

From source file:com.linecorp.armeria.internal.http.Http2ObjectEncoder.java

License:Apache License

private ChannelFuture validateStream(ChannelHandlerContext ctx, int streamId) {
    final Http2Stream stream = encoder.connection().stream(streamId);
    if (stream != null) {
        switch (stream.state()) {
        case RESERVED_LOCAL:
        case OPEN:
        case HALF_CLOSED_REMOTE:
            break;
        default://from w  w w . j  av a 2s .  c  o m
            // The response has been sent already.
            return ctx.newFailedFuture(ClosedPublisherException.get());
        }
    } else if (encoder.connection().streamMayHaveExisted(streamId)) {
        // Stream has been removed because it has been closed completely.
        return ctx.newFailedFuture(ClosedPublisherException.get());
    }

    return null;
}

From source file:com.linecorp.armeria.internal.Http2ObjectEncoder.java

License:Apache License

@Nullable
private ChannelFuture validateStream(ChannelHandlerContext ctx, int streamId) {
    final Http2Stream stream = encoder.connection().stream(streamId);
    if (stream != null) {
        switch (stream.state()) {
        case RESERVED_LOCAL:
        case OPEN:
        case HALF_CLOSED_REMOTE:
            break;
        default://w  w w . j ava  2 s . c om
            // The response has been sent already.
            return ctx.newFailedFuture(ClosedPublisherException.get());
        }
    } else if (encoder.connection().streamMayHaveExisted(streamId)) {
        // Stream has been removed because it has been closed completely.
        return ctx.newFailedFuture(ClosedPublisherException.get());
    }

    return null;
}

From source file:com.turo.pushy.apns.AbstractMockApnsServerHandler.java

License:Open Source License

@Override
public int onDataRead(final ChannelHandlerContext context, final int streamId, final ByteBuf data,
        final int padding, final boolean endOfStream) throws Http2Exception {
    final int bytesProcessed = data.readableBytes() + padding;

    if (endOfStream) {
        final Http2Stream stream = this.connection().stream(streamId);

        // Presumably, we spotted an error earlier and sent a response immediately if the stream is closed on our
        // side.//from   w  w  w .ja  v a  2 s  . c  o m
        if (stream.state() == Http2Stream.State.OPEN) {
            final UUID apnsId = stream.getProperty(this.apnsIdPropertyKey);

            if (data.readableBytes() <= MAX_CONTENT_LENGTH) {
                context.channel().writeAndFlush(new AcceptNotificationResponse(streamId));
            } else {
                context.channel().writeAndFlush(
                        new RejectNotificationResponse(streamId, apnsId, ErrorReason.PAYLOAD_TOO_LARGE, null));
            }
        }
    }

    return bytesProcessed;
}