public Task<StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, long 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; }
public Task <EventStreamSlice> ReadEventStreamBackwardAsync(string stream, int start, int count) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Positive(count, "count"); var source = new TaskCompletionSource <EventStreamSlice>(); var operation = new ReadStreamEventsBackwardOperation(source, Guid.NewGuid(), stream, start, count, true); 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"); var source = new TaskCompletionSource <StreamEventsSlice>(); var operation = new ReadStreamEventsBackwardOperation(_settings.Log, source, stream, start, count, resolveLinkTos, _settings.RequireMaster, userCredentials); EnqueueOperation(operation); return(source.Task); }
public async Task <StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, long start, int count, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Positive(count, "count"); if (count > ClientApiConstants.MaxReadSize) { throw new ArgumentException(string.Format("Count should be less than {0}. For larger reads you should page.", ClientApiConstants.MaxReadSize)); } var source = new TaskCompletionSource <StreamEventsSlice>(TaskCreationOptions.RunContinuationsAsynchronously); var operation = new ReadStreamEventsBackwardOperation(Settings.Log, source, stream, start, count, resolveLinkTos, Settings.RequireMaster, userCredentials); await EnqueueOperation(operation).ConfigureAwait(false); return(await source.Task.ConfigureAwait(false)); }
public async Task <StreamEventsSlice> ReadStreamEventsBackwardAsync(string stream, long start, int count, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.Positive(count, "count"); Ensure.GreaterThanOrEqualTo(start, StreamPosition.End, nameof(start)); if (count > ClientApiConstants.MaxReadSize) { throw new ArgumentException( $"Count should be less than {ClientApiConstants.MaxReadSize}. For larger reads you should page." ); } var source = TaskCompletionSourceFactory.Create <StreamEventsSlice>(); var operation = new ReadStreamEventsBackwardOperation(Settings.Log, source, stream, start, count, resolveLinkTos, Settings.RequireLeader, userCredentials); await EnqueueOperation(operation).ConfigureAwait(false); return(await source.Task.ConfigureAwait(false)); }