protected ReaderSubscriptionBase( IPublisher publisher, Guid subscriptionId, CheckpointTag @from, IReaderStrategy readerStrategy, long?checkpointUnhandledBytesThreshold, int?checkpointProcessedEventsThreshold, bool stopOnEof, int?stopAfterNEvents) { if (publisher == null) { throw new ArgumentNullException("publisher"); } if (readerStrategy == null) { throw new ArgumentNullException("readerStrategy"); } _publisher = publisher; _readerStrategy = readerStrategy; _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); }
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); }
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); }
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 void When() { _tagger = new EventByTypeIndexPositionTagger(0, new[] {"type1", "type2"}); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tagger.MakeZeroCheckpointTag()); }
public void When() { // given _tagger = new PreparePositionTagger(); _positionTracker = new PositionTracker(_tagger); var newTag = CheckpointTag.FromPreparePosition(50); _positionTracker.UpdateByCheckpointTagInitial(newTag); }
public void When() { _tagger = new StreamPositionTagger("stream1"); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tagger.MakeZeroCheckpointTag()); }
public void When() { // given _tagger = new StreamPositionTagger("stream1"); _positionTracker = new PositionTracker(_tagger); var newTag = CheckpointTag.FromStreamPosition("stream1", 1, 50); _positionTracker.UpdateByCheckpointTagInitial(newTag); }
public void When() { _tagger = new MultiStreamPositionTagger(0, new [] {"stream1", "stream2"}); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tagger.MakeZeroCheckpointTag()); }
public void When() { // given _tagger = new TransactionFilePositionTagger(0); _positionTracker = new PositionTracker(_tagger); var newTag = CheckpointTag.FromPosition(0, 100, 50); _positionTracker.UpdateByCheckpointTagInitial(newTag); }
public void When() { // given _tagger = new MultiStreamPositionTagger(0, new []{"stream1", "stream2"}); _positionTracker = new PositionTracker(_tagger); var newTag = CheckpointTag.FromStreamPositions(0, new Dictionary<string, int>{{"stream1", 1}, {"stream2", 2}}); var newTag2 = CheckpointTag.FromStreamPositions(0, new Dictionary<string, int> { { "stream1", 1 }, { "stream2", 3 } }); _positionTracker.UpdateByCheckpointTagInitial(newTag); _positionTracker.UpdateByCheckpointTagForward(newTag2); }
public void When() { // given _tagger = new EventByTypeIndexPositionTagger(0, new[] {"type1", "type2"}); _positionTracker = new PositionTracker(_tagger); var newTag = CheckpointTag.FromEventTypeIndexPositions(0, new TFPos(10, 5), new Dictionary<string, int> {{"type1", 1}, {"type2", 2}}); var newTag2 = CheckpointTag.FromEventTypeIndexPositions(0, new TFPos(20, 15), new Dictionary<string, int> {{"type1", 1}, {"type2", 3}}); _positionTracker.UpdateByCheckpointTagInitial(newTag); _positionTracker.UpdateByCheckpointTagForward(newTag2); }
public void Start(CheckpointTag checkpointTag, PartitionState rootPartitionState) { if (_started) { throw new InvalidOperationException("Already started"); } _started = true; _lastProcessedEventPosition.UpdateByCheckpointTagInitial(checkpointTag); _lastProcessedEventProgress = -1; _lastCompletedCheckpointPosition = checkpointTag; }
protected ReaderSubscriptionBase( IPublisher publisher, Guid subscriptionId, CheckpointTag @from, IReaderStrategy readerStrategy, ITimeProvider timeProvider, long?checkpointUnhandledBytesThreshold, int?checkpointProcessedEventsThreshold, int checkpointAfterMs, bool stopOnEof, int?stopAfterNEvents, bool enableContentTypeValidation) { 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; _checkpointAfter = TimeSpan.FromMilliseconds(checkpointAfterMs); _stopOnEof = stopOnEof; _stopAfterNEvents = stopAfterNEvents; _subscriptionId = subscriptionId; _lastPassedOrCheckpointedEventPosition = null; _eventFilter = readerStrategy.EventFilter; _positionTagger = readerStrategy.PositionTagger; _positionTracker = new PositionTracker(_positionTagger); _positionTracker.UpdateByCheckpointTagInitial(@from); _lastCheckpointTag = _positionTracker.LastTag; _enableContentTypeValidation = enableContentTypeValidation; _logger = Serilog.Log.ForContext <ReaderSubscriptionBase>(); }
public void When() { // given var tagger = new MultiStreamPositionTagger(new []{"stream1", "stream2"}); var tracker = new PositionTracker(tagger); var newTag = CheckpointTag.FromStreamPositions(new Dictionary<string, int>{{"stream1", 1}, {"stream2", 2}}); tracker.UpdateByCheckpointTagInitial(newTag); _tag = tracker.LastTag; _tagger = new MultiStreamPositionTagger(new []{"stream1", "stream2"}); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tag); }
public virtual void Start(CheckpointTag checkpointTag) { Contract.Requires(_currentCheckpoint == null); if (_started) { throw new InvalidOperationException("Already started"); } _started = true; _lastProcessedEventPosition.UpdateByCheckpointTagInitial(checkpointTag); _lastProcessedEventProgress = -1; _lastCompletedCheckpointPosition = checkpointTag; _requestedCheckpointPosition = null; _currentCheckpoint = CreateProjectionCheckpoint(_lastProcessedEventPosition.LastTag); _currentCheckpoint.Start(); }
public void When() { // given var tagger = new PreparePositionTagger(0); var positionTracker = new PositionTracker(tagger); var newTag = CheckpointTag.FromPreparePosition(0, 50); positionTracker.UpdateByCheckpointTagInitial(newTag); _tag = positionTracker.LastTag; _tagger = new PreparePositionTagger(0); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tag); }
public void When() { // given var tagger = new StreamPositionTagger("stream1"); var tracker = new PositionTracker(tagger); var newTag = CheckpointTag.FromStreamPosition("stream1", 1); tracker.UpdateByCheckpointTagInitial(newTag); _tag = tracker.LastTag; _tagger = new StreamPositionTagger("stream1"); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tag); }
public void When() { // given var tagger = new EventByTypeIndexPositionTagger(0, new[] {"type1", "type2"}); var tracker = new PositionTracker(tagger); var newTag = CheckpointTag.FromEventTypeIndexPositions(0, new TFPos(10, 5), new Dictionary<string, int> {{"type1", 1}, {"type2", 2}}); tracker.UpdateByCheckpointTagInitial(newTag); _tag = tracker.LastTag; _tagger = new EventByTypeIndexPositionTagger(0, new[] {"type1", "type2"}); _positionTracker = new PositionTracker(_tagger); // when _positionTracker.UpdateByCheckpointTagInitial(_tag); }
public void When() { // given var tagger = new TransactionFilePositionTagger(); var positionTracker = new PositionTracker(tagger); var newTag = CheckpointTag.FromPosition(100, 50); positionTracker.UpdateByCheckpointTagInitial(newTag); _tag = positionTracker.LastTag; _tagger = new TransactionFilePositionTagger(); _positionTracker = new PositionTracker(_tagger); _positionTracker.UpdateByCheckpointTagInitial(_tag); // when _positionTracker.Initialize(); }
public void Start(CheckpointTag checkpointTag) { if (!_stateLoaded) { throw new InvalidOperationException("State is not loaded"); } if (_started) { throw new InvalidOperationException("Already started"); } _started = true; _lastProcessedEventPosition.UpdateByCheckpointTagInitial(checkpointTag); _lastCompletedCheckpointPosition = checkpointTag; _requestedCheckpointPosition = null; _currentCheckpoint = new ProjectionCheckpoint( _publisher, this, _lastProcessedEventPosition.LastTag, _projectionConfig.MaxWriteBatchLength, _logger); _currentCheckpoint.Start(); }
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); }