public ClientReplyProto sendClient()

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();
  }