示例#1
0
 public IAsyncEnumerable <CounterGroupDetail> GetCounterValuesAsync(List <string> collectionsToExport, ICounterActions actions)
 {
     return(AsyncEnumerable.Empty <CounterGroupDetail>());
 }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }
示例#4
0
#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);
            }
        }