public IObservable <ICommit> ReadAllFromCheckpoint(GetEventStoreCheckpoint checkpoint) { const int batchSize = 512; var start = ((int?)checkpoint ?? 0); const string stream = "$et-" + GetEventStoreCommitAttempt.EventType; return(Observable.Create <ICommit>(async observer => { bool isEndOfStream; do { StreamEventsSlice slice = await _connection.ReadStreamEventsForwardAsync(stream, start, batchSize, true); var commits = (from resolved in slice.Events where false == IsSystemEvent(resolved) let dto = DeserializeEvent(resolved) let commit = BuildCommit(dto, resolved) select commit).ToList(); commits.ForEach(observer.OnNext); start += batchSize; isEndOfStream = slice.IsEndOfStream; } while (false == isEndOfStream); observer.OnCompleted(); })); }
public IObservable <ICommit> GetFrom(string checkpointToken = null) { ThrowWhenDisposed(); Logger.Debug(Messages.GettingAllCommitsFromCheckpoint, checkpointToken); GetEventStoreCheckpoint checkpoint = GetEventStoreCheckpoint.Parse(checkpointToken); var reader = new EventReader(_connection, _serializer); return(reader.ReadAllFromCheckpoint(checkpoint)); }
public ICheckpoint GetCheckpoint(string checkpointToken = null) { return(GetEventStoreCheckpoint.Parse(checkpointToken)); }