public IEnumerator <StreamResult <T> > Stream <T>(IDocumentQuery <T> query) { var streamOperation = new StreamOperation(this); var command = streamOperation.CreateRequest(query.GetIndexQuery()); RequestExecutor.Execute(command, Context, sessionInfo: _sessionInfo); streamOperation.EnsureIsAcceptable(query.IndexName, command.Result); var result = streamOperation.SetResult(command.Result); return(YieldResults(query, result)); }
private IEnumerator <TimeSeriesStreamResult <T> > StreamTimeSeriesInternal <T>(IDocumentQuery <T> query) where T : ITimeSeriesQueryStreamResult, new() { var streamOperation = new StreamOperation(this); var command = streamOperation.CreateRequest(query.GetIndexQuery()); RequestExecutor.Execute(command, Context, sessionInfo: _sessionInfo); streamOperation.EnsureIsAcceptable(query.IndexName, command.Result); var result = streamOperation.SetResultForTimeSeries(command.Result); return(YieldTimeSeriesResults(query, result)); }
public void StreamInto <T>(IDocumentQuery <T> query, Stream output) { var streamOperation = new StreamOperation(this); var command = streamOperation.CreateRequest(query.GetIndexQuery()); RequestExecutor.Execute(command, Context, sessionInfo: _sessionInfo); streamOperation.EnsureIsAcceptable(query.IndexName, command.Result); using (command.Result.Response) using (command.Result.Stream) { command.Result.Stream.CopyTo(output); } }
public async Task StreamIntoAsync <T>(IAsyncDocumentQuery <T> query, Stream output, CancellationToken token = default) { using (AsyncTaskHolder()) { var streamOperation = new StreamOperation(this); var command = streamOperation.CreateRequest(query.GetIndexQuery()); await RequestExecutor.ExecuteAsync(command, Context, _sessionInfo, token).ConfigureAwait(false); streamOperation.EnsureIsAcceptable(query.IndexName, command.Result); using (command.Result.Response) using (command.Result.Stream) { await command.Result.Stream.CopyToAsync(output, 16 * 1024, token).ConfigureAwait(false); } } }
private async Task <IAsyncEnumerator <TimeSeriesStreamResult <T> > > TimeSeriesStreamInternalAsync <T>(IAsyncDocumentQuery <T> query, StreamQueryStatistics streamQueryStats, CancellationToken token) where T : ITimeSeriesQueryStreamResult, new() { using (AsyncTaskHolder()) { var documentQuery = (AsyncDocumentQuery <T>)query; var indexQuery = query.GetIndexQuery(); var streamOperation = new StreamOperation(this, streamQueryStats); var command = streamOperation.CreateRequest(indexQuery); await RequestExecutor.ExecuteAsync(command, Context, _sessionInfo, token).ConfigureAwait(false); streamOperation.EnsureIsAcceptable(query.IndexName, command.Result); var result = await streamOperation.SetResultForTimeSeriesAsync(command.Result).ConfigureAwait(false); var queryOperation = ((AsyncDocumentQuery <T>)query).InitializeQueryOperation(); queryOperation.NoTracking = true; return(new YieldTimeSeriesStream <T>(this, documentQuery, result, token)); } }
private async Task <IAsyncEnumerator <StreamResult <T> > > PerformQueryStreamOperation <T>(IAsyncDocumentQuery <T> query, StreamQueryStatistics streamQueryStats, CancellationToken token) { using (AsyncTaskHolder()) { var documentQuery = (IAbstractDocumentQueryImpl <T>)query; var fieldsToFetch = documentQuery.FieldsToFetchToken; var indexQuery = query.GetIndexQuery(); var streamOperation = new StreamOperation(this, streamQueryStats); var command = streamOperation.CreateRequest(indexQuery); await RequestExecutor.ExecuteAsync(command, Context, _sessionInfo, token).ConfigureAwait(false); streamOperation.EnsureIsAcceptable(query.IndexName, command.Result); var result = await streamOperation.SetResultAsync(command.Result, token).ConfigureAwait(false); var queryOperation = documentQuery.InitializeQueryOperation(); queryOperation.NoTracking = true; return(new YieldStream <T>(this, result, documentQuery, fieldsToFetch, token)); } }