in ratis-hadoop/src/main/java/org/apache/ratis/hadooprpc/client/CombinedClientProtocolServerSideTranslatorPB.java [61:101]
public ClientReplyProto sendClient(RpcController unused, ClientRequestProto req) throws ServiceException {
ByteBuffer buf = req.getRequest().asReadOnlyByteBuffer();
GeneratedMessageV3 response = null;
ClientOps type = req.getType();
try {
switch (type) {
case groupInfo:
response = groupInfo(GroupInfoRequestProto.parseFrom(buf));
break;
case groupList:
response = groupList(GroupListRequestProto.parseFrom(buf));
break;
case groupManagement:
response = groupManagement(GroupManagementRequestProto.parseFrom(buf));
break;
case setConfiguration:
response = setConfiguration(SetConfigurationRequestProto.parseFrom(buf));
break;
case submitClientRequest:
response = submitClientRequest(RaftClientRequestProto.parseFrom(buf));
break;
case transferLeadership:
response = transferLeadership(TransferLeadershipRequestProto.parseFrom(buf));
break;
case snapshotManagement:
response = snapshotManagement(SnapshotManagementRequestProto.parseFrom(buf));
break;
default:
String message = "Internal error, all response types are not being handled as expected. " +
"Developer: check that all response types have appropriate handlers.";
log.error(message);
throw new ServiceException(message);
}
} catch(IOException ioe) {
throw new ServiceException(ioe);
}
return ClientReplyProto.newBuilder()
.setType(type)
.setResponse(ByteString.copyFrom(response.toByteArray()))
.build();
}