public static Props CreateProps(ProjectionStreamQuery query, IActorRef reader, IActorRef writer, GlobalOptions options, Props replayWorkerProps = null) { Argument.RequiresNotNull(query, nameof(query)); Argument.RequiresNotNull(reader, nameof(reader)); Argument.RequiresNotNull(writer, nameof(writer)); Argument.RequiresNotNull(options, nameof(options)); return(Props.Create <ProjectionStream>(query, reader, writer, options, replayWorkerProps)); }
public ProjectionStream(ProjectionStreamQuery query, IActorRef reader, IActorRef writer, GlobalOptions options, Props replayWorkerProps) { _query = query; _reader = reader; _writer = writer; _options = options; _replayWorkerProps = replayWorkerProps ?? Props.Create <ProjectionReplayWorker>(); // subscribe to events in the stream Context.System.EventStream.Subscribe(Self, typeof(IPersistedEvent)); // request checkpoint var request = new ReadProjectionCheckpointRequest(_query.ProjectionStream); _lastRequestId = request.RequestID; _reader.Tell(request); Become(AwaitingCheckpoint); }