in lib/ClientConnection.cc [59:145]
static Result getResult(ServerError serverError, const std::string& message) {
switch (serverError) {
case UnknownError:
return ResultUnknownError;
case MetadataError:
return ResultBrokerMetadataError;
case ChecksumError:
return ResultChecksumError;
case PersistenceError:
return ResultBrokerPersistenceError;
case AuthenticationError:
return ResultAuthenticationError;
case AuthorizationError:
return ResultAuthorizationError;
case ConsumerBusy:
return ResultConsumerBusy;
case ServiceNotReady:
return (message.find("the broker do not have test listener") == std::string::npos)
? ResultRetryable
: ResultConnectError;
case ProducerBlockedQuotaExceededError:
return ResultProducerBlockedQuotaExceededError;
case ProducerBlockedQuotaExceededException:
return ResultProducerBlockedQuotaExceededException;
case TopicNotFound:
return ResultTopicNotFound;
case SubscriptionNotFound:
return ResultSubscriptionNotFound;
case ConsumerNotFound:
return ResultConsumerNotFound;
case UnsupportedVersionError:
return ResultUnsupportedVersionError;
case TooManyRequests:
return ResultTooManyLookupRequestException;
case TopicTerminatedError:
return ResultTopicTerminated;
case ProducerBusy:
return ResultProducerBusy;
case InvalidTopicName:
return ResultInvalidTopicName;
case IncompatibleSchema:
return ResultIncompatibleSchema;
case ConsumerAssignError:
return ResultConsumerAssignError;
case TransactionCoordinatorNotFound:
return ResultTransactionCoordinatorNotFoundError;
case InvalidTxnStatus:
return ResultInvalidTxnStatusError;
case NotAllowedError:
return ResultNotAllowedError;
case TransactionConflict:
return ResultTransactionConflict;
case TransactionNotFound:
return ResultTransactionNotFound;
case ProducerFenced:
return ResultProducerFenced;
}
// NOTE : Do not add default case in the switch above. In future if we get new cases for
// ServerError and miss them in the switch above we would like to get notified. Adding
// return here to make the compiler happy.
return ResultUnknownError;
}