public Task<StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, int start, int count, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Positive(count, "count"); var source = new TaskCompletionSource<StreamEventsSlice>(); var operation = new ReadStreamEventsBackwardOperation(_settings.Log, source, stream, start, count, resolveLinkTos, _settings.RequireMaster, userCredentials); EnqueueOperation(operation); return source.Task; }
/// <summary> /// Reads count events from an Event Stream backwards (e.g. newest to oldest) from position asynchronously /// </summary> /// <param name="stream">The Event Stream to read from</param> /// <param name="start">The position to start reading from</param> /// <param name="count">The count to read from the position</param> /// <param name="resolveLinkTos">Whether to resolve LinkTo events automatically</param> /// <returns>An <see cref="Task<StreamEventsSlice>"/> containing the results of the read operation</returns> public Task<StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, int start, int count, bool resolveLinkTos) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Positive(count, "count"); EnsureActive(); var source = new TaskCompletionSource<StreamEventsSlice>(); var operation = new ReadStreamEventsBackwardOperation(source, Guid.NewGuid(), stream, start, count, resolveLinkTos); EnqueueOperation(operation); return source.Task; }
public Task<StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, int start, int count, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); 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 ReadStreamEventsBackwardOperation(_settings.Log, source, stream, start, count, resolveLinkTos, _settings.RequireMaster, userCredentials); EnqueueOperation(operation); return source.Task; }