예제 #1
0
 private async Task <TimedOperation <ScanResults> > ExecuteScan(ReadRowsRequest scanRequest)
 {
     try
     {
         return(await new TimedOperation <ScanResults>().MeasureAsync(async() =>
         {
             var service = new BigtableService.BigtableServiceClient(_channel);
             var results = new ScanResults();
             using (var scanResults = service.ReadRows(scanRequest))
                 using (var responseStream = scanResults.ResponseStream)
                 {
                     while (await responseStream.MoveNext())
                     {
                         AccumulateRows(responseStream.Current, results);
                     }
                 }
             return results;
         }));
     }
     catch (Exception exception)
     {
         ReportServiceFault(exception);
         throw;
     }
 }
예제 #2
0
        // Used by all read signatures including observables
        private async Task <IAsyncEnumerator <ReadRowsResponse> > ReadRows(ReadRowsRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            // Read rows with native client
            var response = _client.ReadRows(request, cancellationToken: cancellationToken);

            // Wait for response to have started
            await response.ResponseHeadersAsync;

            // Return the response stream
            return(response.ResponseStream);
        }