protected ProjectionSubscriptionBase(
            Guid projectionCorrelationId, Guid subscriptionId, CheckpointTag from,
            IHandle<ProjectionSubscriptionMessage.CommittedEventReceived> eventHandler,
            IHandle<ProjectionSubscriptionMessage.CheckpointSuggested> checkpointHandler,
            IHandle<ProjectionSubscriptionMessage.ProgressChanged> progressHandler,
            IHandle<ProjectionSubscriptionMessage.EofReached> eofHandler,
            CheckpointStrategy checkpointStrategy, long? checkpointUnhandledBytesThreshold, bool stopOnEof)
        {
            if (eventHandler == null) throw new ArgumentNullException("eventHandler");
            if (checkpointHandler == null) throw new ArgumentNullException("checkpointHandler");
            if (progressHandler == null) throw new ArgumentNullException("progressHandler");
            if (eofHandler == null) throw new ArgumentNullException("eofHandler");
            if (checkpointStrategy == null) throw new ArgumentNullException("checkpointStrategy");
            _eventHandler = eventHandler;
            _checkpointHandler = checkpointHandler;
            _progressHandler = progressHandler;
            _eofHandler = eofHandler;
            _checkpointStrategy = checkpointStrategy;
            _checkpointUnhandledBytesThreshold = checkpointUnhandledBytesThreshold;
            _stopOnEof = stopOnEof;
            _projectionCorrelationId = projectionCorrelationId;
            _subscriptionId = subscriptionId;
            _lastPassedOrCheckpointedEventPosition = null;

            _eventFilter = checkpointStrategy.EventFilter;

            _positionTagger = checkpointStrategy.PositionTagger;
            _positionTracker = new PositionTracker(_positionTagger);
            _positionTracker.UpdateByCheckpointTagInitial(@from);
        }
        protected ReaderSubscriptionBase(
            IPublisher publisher,
            Guid subscriptionId,
            CheckpointTag @from,
            IReaderStrategy readerStrategy,
            ITimeProvider timeProvider,
            long? checkpointUnhandledBytesThreshold,
            int? checkpointProcessedEventsThreshold,
            bool stopOnEof,
            int? stopAfterNEvents)
        {
            if (publisher == null) throw new ArgumentNullException("publisher");
            if (readerStrategy == null) throw new ArgumentNullException("readerStrategy");
            if (timeProvider == null) throw new ArgumentNullException("timeProvider");
            if (checkpointProcessedEventsThreshold > 0 && stopAfterNEvents > 0)
                throw new ArgumentException("checkpointProcessedEventsThreshold > 0 && stopAfterNEvents > 0");

            _publisher = publisher;
            _readerStrategy = readerStrategy;
            _timeProvider = timeProvider;
            _checkpointUnhandledBytesThreshold = checkpointUnhandledBytesThreshold;
            _checkpointProcessedEventsThreshold = checkpointProcessedEventsThreshold;
            _stopOnEof = stopOnEof;
            _stopAfterNEvents = stopAfterNEvents;
            _subscriptionId = subscriptionId;
            _lastPassedOrCheckpointedEventPosition = null;

            _eventFilter = readerStrategy.EventFilter;

            _positionTagger = readerStrategy.PositionTagger;
            _positionTracker = new PositionTracker(_positionTagger);
            _positionTracker.UpdateByCheckpointTagInitial(@from);
        }
 public ParallelQueryAllStreamsMasterReaderStrategy(
     int phase, IPrincipal runAs, ITimeProvider timeProvider)
 {
     _runAs = runAs;
     _timeProvider = timeProvider;
     _eventFilter = new StreamEventFilter("$streams", true, null);
     _positionTagger = new CatalogStreamPositionTagger(phase, "$streams");
 }
 public ParallelQueryMasterReaderStrategy(
     int phase, IPrincipal runAs, ITimeProvider timeProvider, string catalogStream)
 {
     _runAs = runAs;
     _timeProvider = timeProvider;
     _catalogStream = catalogStream;
     _eventFilter = new StreamEventFilter(catalogStream, true, null);
     _positionTagger = new CatalogStreamPositionTagger(phase, catalogStream);
 }
 public ExternallyFedReaderStrategy(
     int phase, IPrincipal runAs, ITimeProvider timeProvider, long limitingCommitPosition)
 {
     _phase = phase;
     _runAs = runAs;
     _timeProvider = timeProvider;
     _eventFilter = new BypassingEventFilter();
     _positionTagger = new PreTaggedPositionTagger(
         phase, CheckpointTag.FromByStreamPosition(phase, "", -1, null, -1, limitingCommitPosition));
 }
 protected virtual void When()
 {
     _ef = null;
     try
     {
         _ef = _builder.Build(new RealTimeProvider(), runAs: null).EventFilter;
     }
     catch (Exception ex)
     {
         _exception = ex;
     }
 }
 protected virtual void When()
 {
     _ef = null;
     try
     {
         _ef = _builder.Build().EventFilter;
     }
     catch (Exception ex)
     {
         _exception = ex;
     }
 }
 protected virtual void When()
 {
     _ef = null;
     try
     {
         _ef = _builder.Build(ProjectionConfig.GetTest()).EventFilter;
     }
     catch (Exception ex)
     {
         _exception = ex;
     }
 }
 protected virtual void When()
 {
     _ef = null;
     try
     {
         _ef = _builder.Build(ProjectionMode.Persistent).EventFilter;
     }
     catch (Exception ex)
     {
         _exception = ex;
     }
 }
 protected virtual void When()
 {
     _ef = null;
     try
     {
         var sources = _builder.Build();
         _ef = ReaderStrategy.Create(0, sources, new RealTimeProvider(), stopOnEof: false, runAs: null).EventFilter;
     }
     catch (Exception ex)
     {
         _exception = ex;
     }
 }
 public ExternallyFedReaderStrategy(
     string tag,
     int phase,
     ITimeProvider timeProvider,
     long limitingCommitPosition)
 {
     _tag = tag;
     _timeProvider = timeProvider;
     _eventFilter = new BypassingEventFilter();
     _positionTagger = new PreTaggedPositionTagger(
         phase,
         CheckpointTag.FromByStreamPosition(phase, "", -1, null, -1, limitingCommitPosition));
 }
Beispiel #12
0
        private CheckpointStrategy(
            bool allStreams, HashSet<string> categories, HashSet<string> streams, bool allEvents, HashSet<string> events,
            bool byStream)
        {
            _allStreams = allStreams;
            _categories = categories;
            _streams = streams;
            _allEvents = allEvents;
            _events = events;
            _byStream = byStream;

            _eventFilter = CreateEventFilter();
            _positionTagger = CreatePositionTagger();
            _statePartitionSelector = CreateStatePartitionSelector();
        }
        private CheckpointStrategy(
            bool allStreams, HashSet<string> categories, HashSet<string> streams, bool allEvents, HashSet<string> events,
            bool byStream, bool byCustomPartitions, bool useEventIndexes, bool reorderEvents, int processingLag,
            bool emitStateUpdated, bool useCheckpoints)
        {
            _allStreams = allStreams;
            _categories = categories;
            _streams = streams;
            _allEvents = allEvents;
            _events = events;
            _byStream = byStream;
            _byCustomPartitions = byCustomPartitions;
            _useEventIndexes = useEventIndexes;
            _reorderEvents = reorderEvents;
            _processingLag = processingLag;
            _emitStateUpdated = emitStateUpdated;
            _useCheckpoints = useCheckpoints;

            _eventFilter = CreateEventFilter();
            _positionTagger = CreatePositionTagger();
        }
        public ProjectionSubscription(
            Guid projectionCorrelationId, CheckpointTag from,
            IHandle<ProjectionMessage.Projections.CommittedEventReceived> eventHandler,
            IHandle<ProjectionMessage.Projections.CheckpointSuggested> checkpointHandler,
            CheckpointStrategy checkpointStrategy, long? checkpointUnhandledBytesThreshold)
        {
            if (eventHandler == null) throw new ArgumentNullException("eventHandler");
            if (checkpointHandler == null) throw new ArgumentNullException("checkpointHandler");
            if (checkpointStrategy == null) throw new ArgumentNullException("checkpointStrategy");
            _eventHandler = eventHandler;
            _checkpointHandler = checkpointHandler;
            _checkpointStrategy = checkpointStrategy;
            _checkpointUnhandledBytesThreshold = checkpointUnhandledBytesThreshold;
            _projectionCorrelationId = projectionCorrelationId;
            _lastPassedOrCheckpointedEventPosition = from.Position;

            _eventFilter = checkpointStrategy.EventFilter;

            _positionTagger = checkpointStrategy.PositionTagger;
            _positionTracker = new PositionTracker(_positionTagger);
            _positionTracker.UpdateByCheckpointTagInitial(from);
        }
        private ReaderStrategy(
            int phase, bool allStreams, string[] categories, string[] streams, bool allEvents, bool includeLinks,
            string[] events, string catalogStream, int? processingLag, bool reorderEvents, IPrincipal runAs,
            ITimeProvider timeProvider)
        {
            _phase = phase;
            _allStreams = allStreams;
            _categories = categories != null && categories.Length > 0 ? new HashSet<string>(categories) : null;
            _streams = streams != null && streams.Length > 0 ? new HashSet<string>(streams) : null;
            _allEvents = allEvents;
            _includeLinks = includeLinks;
            _events = events != null && events.Length > 0 ? new HashSet<string>(events) : null;
            _catalogStream = catalogStream;
            _processingLag = processingLag.GetValueOrDefault();
            _reorderEvents = reorderEvents;
            _runAs = runAs;

            _eventFilter = CreateEventFilter();
            _positionTagger = CreatePositionTagger();
            _timeProvider = timeProvider;
        }
Beispiel #16
0
        private ReaderStrategy(
            bool allStreams, HashSet<string> categories, HashSet<string> streams, bool allEvents, bool includeLinks,
            HashSet<string> events, int processingLag, bool reorderEvents, IPrincipal runAs, ITimeProvider timeProvider)
        {
            _allStreams = allStreams;
            _categories = categories;
            _streams = streams;
            _allEvents = allEvents;
            _includeLinks = includeLinks;
            _events = events;
            _processingLag = processingLag;
            _reorderEvents = reorderEvents;
            _runAs = runAs;

            _eventFilter = CreateEventFilter();
            _positionTagger = CreatePositionTagger();
            _timeProvider = timeProvider;
        }