public Task<StreamEventsSlice> ReadStreamEventsForwardAsync(string stream, long 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;
 }
Ejemplo n.º 2
0
        public Task <EventStreamSlice> ReadEventStreamForwardAsync(string stream, int start, int count)
        {
            Ensure.NotNullOrEmpty(stream, "stream");
            Ensure.Nonnegative(start, "start");
            Ensure.Positive(count, "count");

            var source    = new TaskCompletionSource <EventStreamSlice>();
            var operation = new ReadStreamEventsForwardOperation(source, Guid.NewGuid(), stream, start, count, true);

            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");

            var source    = new TaskCompletionSource <StreamEventsSlice>();
            var operation = new ReadStreamEventsForwardOperation(_settings.Log, source, stream, start, count,
                                                                 resolveLinkTos, _settings.RequireMaster, userCredentials);

            EnqueueOperation(operation);
            return(source.Task);
        }
        public async Task <StreamEventsSlice> ReadStreamEventsForwardAsync(string stream, long start, int count, bool resolveLinkTos, UserCredentials userCredentials = null)
        {
            Ensure.NotNullOrEmpty(stream, "stream");
            Ensure.Nonnegative(start, "start");
            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 ReadStreamEventsForwardOperation(Settings.Log, source, stream, start, count,
                                                                 resolveLinkTos, Settings.RequireMaster, userCredentials);

            await EnqueueOperation(operation).ConfigureAwait(false);

            return(await source.Task.ConfigureAwait(false));
        }