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