public CommittedEventWorkItem( CoreProjection projection, ProjectionMessage.Projections.CommittedEventReceived message, string partition) : base(projection, message.EventStreamId) { _message = message; _partition = partition; }
public Point ProjectToScreen(Position position) { var msg = new ProjectionMessage(this, position); MessagingCenter.Send <XamMapz.Map, MapMessage>(this, MapMessage.Message, msg); return(msg.ScreenPosition); }
// checkpoints are serialized based on string.empty token stream name public CheckpointSuggestedWorkItem( CoreProjection projection, ProjectionMessage.Projections.CheckpointSuggested message, CoreProjectionCheckpointManager checkpointManager) : base(projection, "") { _message = message; _checkpointManager = checkpointManager; }
public bool Handle(ProjectionMessage.Projections.CommittedEventReceived message) { if (message.CorrelationId != _distributionPointId) return false; if (message.Data == null) return true; CacheRecentMessage(message); DistributeMessage(message); if (_headSubscribers.Count == 0 && !_headDistributionPointPaused) { _headDistributionPoint.Pause(); _headDistributionPointPaused = true; } return true; }
public void Handle(ProjectionMessage.Projections.Faulted message) { SetFaulted(message.FaultedReason); DisposeCoreProjection(); }
public void Handle(ProjectionMessage.Projections.Started message) { }
public void Handle(ProjectionMessage.Projections.Stopped message) { _state = ManagedProjectionState.Stopped; DisposeCoreProjection(); var stopCompleted = _stopCompleted; _stopCompleted = null; if (stopCompleted != null) stopCompleted(); }
public abstract string GetStatePartition(ProjectionMessage.Projections.CommittedEventReceived @event);
private void ValidateEventOrder(ProjectionMessage.Projections.CommittedEventDistributed message) { if (_lastEventPosition >= message.Position) throw new InvalidOperationException( string.Format( "Invalid committed event order. Last: '{0}' Received: '{1}'", _lastEventPosition, message.Position)); _lastEventPosition = message.Position; }
public void Handle(ProjectionMessage.Projections.Management.StateReport message) { var stateRequests = _stateRequests; _stateRequests = null; foreach (var request in stateRequests) request.ReplyWith(new ProjectionManagementMessage.ProjectionState(_name, message.State)); }
public CheckpointTag MakeCheckpointTag(ProjectionMessage.Projections.CommittedEventDistributed committedEvent) { return CheckpointTag.FromStreamPosition( committedEvent.PositionStreamId, committedEvent.EventSequenceNumber, committedEvent.Position.PreparePosition); }
public void Handle(ProjectionMessage.Projections.PauseRequested message) { throw new NotImplementedException(); }
public void Handle(ProjectionMessage.Projections.CommittedEventReceived message) { HandledMessages.Add(message); }
public void Update(ProjectionMessage.Projections.CommittedEventReceived comittedEvent) { var newTag = _positionTagger.MakeCheckpointTag(comittedEvent); UpdateByCheckpointTagForward(newTag); UpdatePosition(comittedEvent.Position); }
public override CheckpointTag MakeCheckpointTag(CheckpointTag previous, ProjectionMessage.Projections.CommittedEventDistributed comittedEvent) { if (comittedEvent.PositionStreamId != _stream) throw new InvalidOperationException(string.Format("Invalid stream '{0}'. Expected stream is '{1}'", comittedEvent.EventStreamId, _stream)); return CheckpointTag.FromStreamPosition(comittedEvent.PositionStreamId, comittedEvent.PositionSequenceNumber, comittedEvent.Position.PreparePosition); }
public CheckpointTag MakeCheckpointTag(ProjectionMessage.Projections.CommittedEventDistributed committedEvent) { // this is the same tag that will be generated by Handle(CommittedEventDistributed) var tag = _positionTagger.MakeCheckpointTag(_positionTracker.LastTag, committedEvent); return tag; }
public void Handle(ProjectionMessage.Projections.CommittedEventDistributed message) { if (message.Data == null) throw new NotSupportedException(); // NOTE: we may receive here messages from heading event distribution point // and they may not pass out source filter. Discard them first if (!_eventFilter.PassesSource(message.ResolvedLinkTo, message.PositionStreamId)) return; var eventCheckpointTag = _positionTagger.MakeCheckpointTag(_positionTracker.LastTag, message); //TODO: when joining heading distribution point replayed events may cause invalid operation exception on comparison if (eventCheckpointTag <= _positionTracker.LastTag) { _logger.Trace( "Skipping replayed event {0}@{1} at position {2}. the last processed event checkpoint tag is: {3}", message.PositionSequenceNumber, message.PositionStreamId, message.Position, _positionTracker.LastTag); return; } _positionTracker.UpdateByCheckpointTagForward(eventCheckpointTag); if (_eventFilter.Passes(message.ResolvedLinkTo, message.PositionStreamId, message.Data.EventType)) { _lastPassedOrCheckpointedEventPosition = message.Position; var convertedMessage = ProjectionMessage.Projections.CommittedEventReceived.FromCommittedEventDistributed(message, eventCheckpointTag); _eventHandler.Handle(convertedMessage); } else { if (_checkpointUnhandledBytesThreshold != null && message.Position.CommitPosition - _lastPassedOrCheckpointedEventPosition.CommitPosition > _checkpointUnhandledBytesThreshold) { _lastPassedOrCheckpointedEventPosition = message.Position; _checkpointHandler.Handle( new ProjectionMessage.Projections.CheckpointSuggested( _projectionCorrelationId, _positionTracker.LastTag)); } } }
public void Handle(ProjectionMessage.Projections.Management.StatisticsReport message) { _lastReceivedStatistics = message.Statistics; }
public virtual CheckpointTag MakeCheckpointTag(CheckpointTag previous, ProjectionMessage.Projections.CommittedEventDistributed comittedEvent) { return new CheckpointTag(comittedEvent.Position); }
private void CacheRecentMessage(ProjectionMessage.Projections.CommittedEventReceived message) { _lastMessages.Enqueue(message); if (_lastMessages.Count > _eventCacheSize) { _lastMessages.Dequeue(); } var lastAvailableCommittedevent = _lastMessages.Peek(); _subscribeFromPosition = lastAvailableCommittedevent.Position; }
public void Handle(ProjectionMessage.Projections.CheckpointSuggested message) { HandledCheckpoints.Add(message); }
public virtual CheckpointTag MakeCheckpointTag(ProjectionMessage.Projections.CommittedEventReceived comittedEvent) { return new CheckpointTag(comittedEvent.Position); }
public void Handle(ProjectionMessage.Projections.CheckpointLoaded message) { throw new NotImplementedException(); }
public override string GetStatePartition(ProjectionMessage.Projections.CommittedEventReceived @event) { return @event.EventStreamId; }
private void DistributeMessage(ProjectionMessage.Projections.CommittedEventReceived message) { foreach (var subscriber in _headSubscribers.Values) subscriber.Handle(message); }
public void Handle(ProjectionMessage.Projections.PauseRequested message) { _pauseRequestedMessages.Add(message); }
public void Handle(ProjectionMessage.Projections.CheckpointLoaded message) { _checkpointLoadedMessages.Add(message); }
public void Handle(ProjectionMessage.Projections.CommittedEventDistributed message) { _receivedEvents.Add(message); }