snapshot method

*[<Null safety>](https://dart.dev/null-safety)*

Future<List<DiagnosticsData<METADATA>>> snapshot ({bool acceptSnapshot(List<DiagnosticsData<METADATA>> snapshot)?, Duration attemptDelay = const Duration(milliseconds: 100), int? maxAttempts = 200})

Implementation

Future<List<DiagnosticsData<METADATA>>> snapshot(
    {bool acceptSnapshot(List<DiagnosticsData<METADATA>> snapshot)?,
    Duration attemptDelay = const Duration(milliseconds: 100),
    int? maxAttempts = 200}) async {
  for (var attempts = 0;
      maxAttempts == null || attempts < maxAttempts;
      attempts++) {
    final snapshot = await _snapshotAttempt;
    if (acceptSnapshot == null || acceptSnapshot(snapshot)) {
      return snapshot;
    }
    await Future.delayed(attemptDelay);
  }
  throw Exception('snapshot failed');
}