handleResponse method

  1. @override
Future<void> handleResponse(
  1. AtRpcResp response
)
override

Called when a 'response' is received

Implementation

@override
Future<void> handleResponse(AtRpcResp response) async {
  logger.info('Got response ${response.payload}');

  final Completer? completer = completerMap[response.reqId];

  if (completer == null || completer.isCompleted) {
    logger.warning('Ignoring response, no completer found : $response');
    return;
  }

  switch (response.respType) {
    case AtRpcRespType.ack:
      // We don't complete the future when we get an ack
      logger.info('Got ack : $response');
      break;
    case AtRpcRespType.success:
      logger.info('Got success response : $response');
      completer.complete(response.payload);
      completerMap.remove(response.reqId);
      break;
    default:
      logger.warning('Got non-success response '
          ' : $response');
      completer.completeError('Got non-success response : $response');
      completerMap.remove(response.reqId);
      break;
  }
}