shutdown method
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);
}