public void write()

in src/main/java/com/twitter/http2/HttpStreamEncoder.java [46:87]


    public void write(final ChannelHandlerContext ctx, Object msg, ChannelPromise promise)
            throws Exception {
        if (msg instanceof HttpRequest) {

            HttpRequest httpRequest = (HttpRequest) msg;
            HttpHeadersFrame httpHeadersFrame = createHttpHeadersFrame(httpRequest);
            currentStreamId = httpHeadersFrame.getStreamId();

            ChannelPromise writeFuture = getMessageFuture(ctx, promise, currentStreamId, httpRequest);
            if (promise == writeFuture) {
                httpHeadersFrame.setLast(true);
            } else {
                promise = writeFuture;
            }

            ctx.write(httpHeadersFrame, promise);

        } else if (msg instanceof HttpResponse) {

            HttpResponse httpResponse = (HttpResponse) msg;
            HttpHeadersFrame httpHeadersFrame = createHttpHeadersFrame(httpResponse);
            currentStreamId = httpHeadersFrame.getStreamId();

            ChannelPromise writeFuture = getMessageFuture(ctx, promise, currentStreamId, httpResponse);
            if (promise == writeFuture) {
                httpHeadersFrame.setLast(true);
            } else {
                promise = writeFuture;
            }

            ctx.write(httpHeadersFrame, promise);

        } else if (msg instanceof HttpContent) {

            HttpContent chunk = (HttpContent) msg;
            writeChunk(ctx, promise, currentStreamId, chunk);

        } else {
            // Unknown message type
            ctx.write(msg, promise);
        }
    }