public void HandleReadCompleted(ResolvedEvent[] events, int newposition, bool isEndOfStream) { lock (_lock) { if ((_state & PersistentSubscriptionState.OutstandingPageRequest) == 0) { return; } _state &= ~PersistentSubscriptionState.OutstandingPageRequest; if (_streamBuffer.Live) { return; } foreach (var ev in events) { _streamBuffer.AddReadMessage(new OutstandingMessage(ev.OriginalEvent.EventId, null, ev, 0)); } if (_streamBuffer.Live) { SetLive(); } if (isEndOfStream) { SetLive(); _streamBuffer.MoveToLive(); return; } _lastPulledEvent = newposition; TryReadingNewBatch(); TryPushingMessagesToClients(); } }
public void HandleReadCompleted(ResolvedEvent[] events, long newposition, bool isEndOfStream) { lock (_lock) { if ((_state & PersistentSubscriptionState.OutstandingPageRequest) == 0) { return; } _state &= ~PersistentSubscriptionState.OutstandingPageRequest; if (_streamBuffer.Live) { return; } foreach (var ev in events) { _streamBuffer.AddReadMessage(new OutstandingMessage(ev.OriginalEvent.EventId, null, ev, 0)); } if (events.Length > 0) { _statistics.SetLastKnownEventNumber(events[events.Length - 1].OriginalEventNumber); } if (_streamBuffer.Live) { SetLive(); } if (isEndOfStream) { SetLive(); _streamBuffer.MoveToLive(); return; } _nextEventToPullFrom = newposition; TryReadingNewBatch(); TryPushingMessagesToClients(); } }