Exemplo n.º 1
0
 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();
     }
 }
Exemplo n.º 2
0
 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();
     }
 }