protected void writeFrames()

in tchannel-core/src/main/java/com/uber/tchannel/handlers/MessageFragmenter.java [58:84]


    protected void writeFrames(
        @NotNull ChannelHandlerContext ctx,
        @NotNull RawMessage msg,
        @NotNull List<Object> frames
    ) throws Exception {
        List<ByteBuf> args = new ArrayList<>(3);
        args.add(msg.getArg1());
        args.add(msg.getArg2());
        args.add(msg.getArg3());

        CallFrame frame = null;
        while (!args.isEmpty()) {
            if (frame == null || frame.isPayloadFull()) {
                frame = createFrame(msg, args.size());
            }

            frame.encodePayload(ctx.alloc(), args);
            frames.add(
                MessageCodec.encode(ctx.alloc(),
                    MessageCodec.encode(
                        ctx.alloc(),
                        frame
                    )
                )
            );
        }
    }