public Task<StreamEventsSlice> ReadStreamEventsForwardAsync(string stream, int start, int count, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Nonnegative(start, "start"); Ensure.Positive(count, "count"); var source = new TaskCompletionSource<StreamEventsSlice>(); var operation = new ReadStreamEventsForwardOperation(_settings.Log, source, stream, start, count, resolveLinkTos, _settings.RequireMaster, userCredentials); EnqueueOperation(operation); return source.Task; }
/// <summary> /// Reads count Events from an Event Stream forwards (e.g. oldest to newest) starting from position start /// </summary> /// <param name="stream">The stream to read from</param> /// <param name="start">The starting point to read from</param> /// <param name="count">The count of items to read</param> /// <param name="resolveLinkTos">Whether to resolve LinkTo events automatically</param> /// <returns>A <see cref="Task<StreamEventsSlice>"/> containing the results of the read operation</returns> public Task<StreamEventsSlice> ReadStreamEventsForwardAsync(string stream, int start, int count, bool resolveLinkTos) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Nonnegative(start, "start"); Ensure.Positive(count, "count"); EnsureActive(); var source = new TaskCompletionSource<StreamEventsSlice>(); var operation = new ReadStreamEventsForwardOperation(source, Guid.NewGuid(), stream, start, count, resolveLinkTos); EnqueueOperation(operation); return source.Task; }
public Task<StreamEventsSlice> ReadStreamEventsForwardAsync(string stream, int start, int count, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Nonnegative(start, "start"); Ensure.Positive(count, "count"); if(count > Consts.MaxReadSize) throw new ArgumentException(string.Format("Count should be less than {0}. For larger reads you should page.", Consts.MaxReadSize)); var source = new TaskCompletionSource<StreamEventsSlice>(); var operation = new ReadStreamEventsForwardOperation(_settings.Log, source, stream, start, count, resolveLinkTos, _settings.RequireMaster, userCredentials); EnqueueOperation(operation); return source.Task; }