Class GrpcPagedAsyncEnumerable<TRequest, TResponse, TResource> (4.8.0)

public sealed class GrpcPagedAsyncEnumerable<TRequest, TResponse, TResource> : PagedAsyncEnumerable<TResponse, TResource>, IAsyncEnumerable<TResource> where TRequest : class, IPageRequest, IMessage<TRequest> where TResponse : class, IPageResponse<TResource>, IMessage<TResponse>

An asynchronous sequence of resources, obtained lazily via API operations which retrieve a page at a time.

Inheritance

object > PagedAsyncEnumerable > GrpcPagedAsyncEnumerable<TRequest, TResponse, TResource>

Implements

IAsyncEnumerable

Namespace

Google.Api.Gax.Grpc

Assembly

Google.Api.Gax.Grpc.dll

Type Parameters

Name Description
TRequest

The API request type.

TResponse

The API response type. Each response contains a page of resources.

TResource

The resource type contained within the response.

Constructors

GrpcPagedAsyncEnumerable(ApiCall<TRequest, TResponse>, TRequest, CallSettings)

public GrpcPagedAsyncEnumerable(ApiCall<TRequest, TResponse> apiCall, TRequest request, CallSettings callSettings)

Creates a new lazily-evaluated asynchronous sequence from the given API call, initial request, and call settings.

Parameters
Name Description
apiCall ApiCall

The API call made each time a page is required.

request TRequest

The initial request.

callSettings CallSettings

The settings to apply to each API call.

Remarks

The request is cloned each time the sequence is evaluated.

Methods

AsRawResponses()

public override IAsyncEnumerable<TResponse> AsRawResponses()

Returns the sequence of raw API responses, each of which contributes a page of resources to this sequence.

Returns
Type Description
IAsyncEnumerable

An asynchronous sequence of raw API responses, each containing a page of resources.

Overrides
Google.Api.Gax.PagedAsyncEnumerable<TResponse, TResource>.AsRawResponses()

GetAsyncEnumerator(CancellationToken)

public override IAsyncEnumerator<TResource> GetAsyncEnumerator(CancellationToken cancellationToken = default)

Returns an enumerator that iterates asynchronously through the collection.

Parameter
Name Description
cancellationToken CancellationToken

A CancellationToken that may be used to cancel the asynchronous iteration.

Returns
Type Description
IAsyncEnumerator

An enumerator that can be used to iterate asynchronously through the collection.

Overrides

ReadPageAsync(int, CancellationToken)

public override Task<Page<TResource>> ReadPageAsync(int pageSize, CancellationToken cancellationToken = default)

Eagerly (but asynchronously) reads a single page of results with a fixed maximum size. The returned page is guaranteed to have that many results, unless there is no more data available.

Parameters
Name Description
pageSize int

The page size. Must be greater than 0.

cancellationToken CancellationToken

A token to cancel the operation.

Returns
Type Description
TaskPage

An asynchronous operation, the result of which is a page of resources.

Overrides Remarks

"Natural" pages returned by the API may contain a smaller number of resources than requested. For example, a request for a page with 100 resources may return a page with 80 resources but a next page token for more to be retrieved. This is suitable for batch-processing, but not for user-visible paging such as in a web application, where fixed-size pages are expected. This method may make more than one API call in order to fill the page, but after the page has been returned, all the data will have been loaded. (In particular, iterating over the items in the page multiple times will not make any further requests.)