public IAsyncEnumerable <CounterGroupDetail> GetCounterValuesAsync(List <string> collectionsToExport, ICounterActions actions) { return(AsyncEnumerable.Empty <CounterGroupDetail>()); }
public IEnumerable <CounterGroupDetail> GetCounterValues(List <string> collectionsToExport, ICounterActions actions) { Debug.Assert(_context != null); if (collectionsToExport?.Count > 0) { foreach (var collection in collectionsToExport) { foreach (var counter in _database.DocumentsStorage.CountersStorage.GetCountersFrom(_context, collection, _startDocumentEtag, 0, int.MaxValue)) { yield return(counter); } } yield break; } foreach (var counter in _database.DocumentsStorage.CountersStorage.GetCountersFrom(_context, _startDocumentEtag, 0, int.MaxValue)) { yield return(counter); } }
public IEnumerable <CounterGroupDetail> GetCounterValues(List <string> collectionsToExport, ICounterActions actions) { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <CounterGroupDetail, CountersIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetCounterValuesFromCollections(_context, state)); } return(_database.DocumentsStorage.CountersStorage.GetCountersFrom(_context, state.StartEtag, 0, int.MaxValue)); }, new CountersIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) // initial state { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }
#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously public async IAsyncEnumerable <CounterGroupDetail> GetCounterValuesAsync(List <string> collectionsToExport, ICounterActions actions) #pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously { Debug.Assert(_context != null); var enumerator = new PulsedTransactionEnumerator <CounterGroupDetail, CountersIterationState>(_context, state => { if (state.StartEtagByCollection.Count != 0) { return(GetCounterValuesFromCollections(_context, state)); } return(_database.DocumentsStorage.CountersStorage.GetCountersFrom(_context, state.StartEtag, 0, long.MaxValue)); }, new CountersIterationState(_context, _database.Configuration.Databases.PulseReadTransactionLimit) // initial state { StartEtag = _startDocumentEtag, StartEtagByCollection = collectionsToExport.ToDictionary(x => x, x => _startDocumentEtag) }); while (enumerator.MoveNext()) { yield return(enumerator.Current); } }