void handleQueryCompletion()

in squangle/mysql_client/FutureAdapter.cpp [59:86]


void handleQueryCompletion(
    Operation& op,
    QueryResult query_result,
    QueryCallbackReason reason,
    folly::Promise<std::pair<ResultType, AsyncPostQueryCallback>>& promise) {
  auto conn = op.releaseConnection();
  auto conn_key = *conn->getKey();
  if (reason == QueryCallbackReason::Success) {
    ResultType result(
        std::move(query_result),
        op.numQueriesExecuted(),
        op.resultSize(),
        std::move(conn),
        op.result(),
        std::move(conn_key),
        op.elapsed());
    promise.setValue(std::make_pair(
        std::move(result), std::move(op.callbacks_.post_query_callback_)));
  } else {
    promise.setException(QueryException(
        op.numQueriesExecuted(),
        op.result(),
        op.mysql_errno(),
        op.mysql_error(),
        std::move(conn_key),
        op.elapsed()));
  }
}