in tchannel-core/src/main/java/com/uber/tchannel/handlers/MessageDefragmenter.java [62:89]
protected void decode(ChannelHandlerContext ctx, ByteBuf buf, List<Object> out) throws Exception {
buf.touch("MessageDefragmenter.decode(...)");
Frame frame = MessageCodec.decode(
MessageCodec.decode(buf)
);
TChannelMessage msg = null;
switch (frame.getType()) {
case CallRequest:
case CallResponse:
msg = decodeCallFrame(ctx, (CallFrame) frame);
break;
case CallRequestContinue:
case CallResponseContinue:
msg = decodeCallContinueFrame((CallFrame) frame);
break;
case Error:
msg = MessageCodec.decodeErrorResponse((ErrorFrame) frame);
break;
default:
break;
}
if (msg != null) {
out.add(msg);
}
}