runCheck method
- Checker check
Runs a single Checker, reporting its progress through ConnectionCheckUpdateEvents, and disposes it when done.
Used by all check* methods; can also be used to run a custom
Checker subclass as part of this run.
Implementation
Future<CheckInfo> runCheck(Checker check) async {
if (check.status != CheckStatus.idle) {
throw StateError('check is running already');
}
final checkId = _getNextCheckId();
final listener = check.createListener();
listener.on<CheckerUpdateEvent>((event) => _updateCheck(checkId, event.info));
try {
return await check.run();
} finally {
_updateCheck(checkId, check.getInfo());
await listener.dispose();
await check.dispose();
}
}