/// <summary> /// Начать последовательный доступ к событиям /// </summary> /// <param name="fromDate">Фильтр по дате-времени, начальное значение</param> /// <param name="toDate">Фильтр по дате-времени, конечное значение</param> /// <param name="sourceFilter">Фильтр по источнику событий</param> /// <param name="eventFilter">Фильтр по типам событий</param> /// <param name="maxEvents">Максимальное количество событий</param> /// <param name="eventPerIteration"> /// Максимальное количество событий, возвращаемое на каждый вызов /// метода IEventLinkBasics.GetLog /// </param> /// <returns>Идентификатор итератора</returns> public string BeginGetLog(DateTime fromDate, DateTime toDate, string[] sourceFilter, EventType[] eventFilter, int maxEvents, int eventPerIteration) { // создаем контейнер для итератора var iteratorContainer = new Iterators.EventsIterator(GetStorageName); // получаем итератор и сохраняем его в хэш-таблице var iteratorId = Guid.NewGuid().ToString(); // блокируем доступ к логу на запись _syncFilesMutex.WaitMutex(); var iterator = iteratorContainer.GetBufferedEvents( new Iterators.EventIteratorParams() { FromDate = fromDate, ToDate = toDate, SourceFilter = sourceFilter, EventTypeFilter = EventsToStrings(eventFilter), MaxEvents = maxEvents, MaxEventsPerIteration = eventPerIteration }).GetEnumerator(); _eventIterators.Add(iteratorId, iterator); // возвращаем идентификатор итератора return(iteratorId); }
/// <summary> /// Начать последовательный доступ к событиям /// </summary> /// <param name="fromDate">Фильтр по дате-времени, начальное значение</param> /// <param name="toDate">Фильтр по дате-времени, конечное значение</param> /// <param name="sourceFilter">Фильтр по источнику событий</param> /// <param name="eventFilter">Фильтр по типам событий</param> /// <param name="maxEvents">Максимальное количество событий</param> /// <param name="eventPerIteration"> /// Максимальное количество событий, возвращаемое на каждый вызов /// метода IEventLinkBasics.GetLog /// </param> /// <returns>Идентификатор итератора</returns> public String BeginGetLog(DateTime fromDate, DateTime toDate, String[] sourceFilter, EventType[] eventFilter, Int32 maxEvents, Int32 eventPerIteration) { // создаем контейнер для итератора var iteratorContainer = new Iterators.EventsIterator(GetStorageName); // получаем итератор и сохраняем его в хэш-таблице var iteratorId = Guid.NewGuid().ToString(); // блокируем доступ к логу на запись _syncFilesMutex.WaitMutex(); var iterator = iteratorContainer.GetBufferedEvents( new Iterators.EventIteratorParams() { FromDate = fromDate, ToDate = toDate, SourceFilter = sourceFilter, EventTypeFilter = EventsToStrings(eventFilter), MaxEvents = maxEvents, MaxEventsPerIteration = eventPerIteration }).GetEnumerator(); _eventIterators.Add(iteratorId, iterator); // возвращаем идентификатор итератора return iteratorId; }