public sealed class RestPagedEnumerable<TRequest, TResponse, TResource> : PagedEnumerable<TResponse, TResource>, IEnumerable<TResource>, IEnumerable where TRequest : class, IClientServiceRequest<TResponse> where TResponse : class
A sequence of resources, obtained lazily via API operations which retrieve a page at a time.
Inheritance
Object > PagedEnumerable<TResponse, TResource> > RestPagedEnumerable<TRequest, TResponse, TResource>Namespace
Google.Api.Gax.RestAssembly
Google.Api.Gax.Rest.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
RestPagedEnumerable(Func<TRequest>, IPageManager<TRequest, TResponse, TResource>)
public RestPagedEnumerable(Func<TRequest> requestProvider, IPageManager<TRequest, TResponse, TResource> pageManager)
Creates a new lazily-evaluated sequence from the given API call, initial request, and call settings.
Parameters | |
---|---|
Name | Description |
requestProvider | Func<TRequest> A factory used to create an initial request each time the sequence is iterated over. |
pageManager | IPageManager<TRequest, TResponse, TResource> A manager to work with the requests and responses. |
Methods
AsRawResponses()
public override IEnumerable<TResponse> AsRawResponses()
Returns the sequence of raw API responses, each of which contributes a page of resources to this sequence.
Returns | |
---|---|
Type | Description |
IEnumerable<TResponse> | A sequence of raw API responses, each containing a page of resources. |
GetEnumerator()
public override IEnumerator<TResource> GetEnumerator()
Returns | |
---|---|
Type | Description |
IEnumerator<TResource> |
ReadPage(Int32)
public override Page<TResource> ReadPage(int pageSize)
Eagerly 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.
Parameter | |
---|---|
Name | Description |
pageSize | Int32 The page size. Must be greater than 0. |
Returns | |
---|---|
Type | Description |
Page<TResource> | An asynchronous operation, the result of which is a page of resources. |
"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.)