shutdown method

Future<void> shutdown ()

Implementation

Future<void> shutdown() async {
  log.dartros.info('Shutting node $nodeName down at ${DateTime.now()}');
  log.dartros.info('Shutdown tcprosServer');
  await _stopTcpRosServer();
  _ok = false;
  log.dartros.info('Shutdown subscribers');
  await Future.wait(_subscribers.values.map((s) => s.shutdown()));
  log.dartros.info('Shutdown subscribers...done');
  log.dartros.info('Shutdown publishers');
  await Future.wait(_publishers.values.map((p) => p.shutdown()));
  log.dartros.info('Shutdown publishers...done');
  log.dartros.info('Shutdown servers');
  for (final s in _services.values) {
    s.shutdown();
  }
  log.dartros.info('Shutdown servers...done');
  log.dartros.info('Shutdown XMLRPC server');
  await _stopXmlRpcServer();
  log.dartros.info('Shutdown XMLRPC server...done');
  log.dartros.info('Shutting $nodeName down completed at ${DateTime.now()}');
  exit(0);
}