in tchannel-core/src/main/java/com/uber/tchannel/frames/Frame.java [45:91]
public static Frame create(TFrame tFrame) throws TChannelError {
FrameType type = FrameType.fromByte(tFrame.type);
if (type == null) {
throw new TChannelProtocol("Cannot read the frame type");
}
final Frame frame;
switch (type) {
case CallRequest:
frame = new CallRequestFrame(tFrame.id);
break;
case CallRequestContinue:
frame = new CallRequestContinueFrame(tFrame.id);
break;
case CallResponse:
frame = new CallResponseFrame(tFrame.id);
break;
case CallResponseContinue:
frame = new CallResponseContinueFrame(tFrame.id);
break;
case Cancel:
frame = new CancelFrame(tFrame.id);
break;
case Claim:
frame = new ClaimFrame(tFrame.id);
break;
case Error:
frame = new ErrorFrame(tFrame.id);
break;
case InitRequest:
frame = new InitRequestFrame(tFrame.id);
break;
case InitResponse:
frame = new InitResponseFrame(tFrame.id);
break;
case PingRequest:
frame = new PingRequestFrame(tFrame.id);
break;
case PingResponse:
frame = new PingResponseFrame(tFrame.id);
break;
default:
throw new TChannelCodec(String.format("Unknown FrameType: %s", type));
}
return frame;
}