Class StreamingCollectionEndpoint<TEntity, TElementEndpoint>
Endpoint for a collection of TEntitys observable as an append-only stream using long-polling.
public class StreamingCollectionEndpoint<TEntity, TElementEndpoint> : CollectionEndpoint<TEntity, TElementEndpoint>, ICachingEndpoint, IStreamingCollectionEndpoint<TEntity, TElementEndpoint>, ICollectionEndpoint<TEntity, TElementEndpoint>, IIndexerEndpoint<TElementEndpoint>, IEndpoint where TEntity : class where TElementEndpoint : class, IElementEndpoint<TEntity>
Type Parameters
TEntityThe type of individual elements in the collection.
TElementEndpointThe type of IEndpoint to provide for individual
TEntitys. Must have a public constructor with an IEndpoint and an Uri or string parameter.
- Inheritance
-
CollectionEndpoint<TEntity, TElementEndpoint>StreamingCollectionEndpoint<TEntity, TElementEndpoint>
- Implements
-
IStreamingCollectionEndpoint<TEntity, TElementEndpoint>ICollectionEndpoint<TEntity, TElementEndpoint>IIndexerEndpoint<TElementEndpoint>
- Derived
- Inherited Members
- Extension Methods
Constructors
StreamingCollectionEndpoint(IEndpoint, string)
Creates a new streaming collection endpoint.
public StreamingCollectionEndpoint(IEndpoint referrer, string relativeUri)
Parameters
referrerIEndpointThe endpoint used to navigate to this one.
relativeUristringThe URI of this endpoint relative to the
referrer's. Add a./prefix here to imply a trailing slashreferrer's URI.
StreamingCollectionEndpoint(IEndpoint, Uri)
Creates a new streaming collection endpoint.
public StreamingCollectionEndpoint(IEndpoint referrer, Uri relativeUri)
Parameters
referrerIEndpointThe endpoint used to navigate to this one.
relativeUriUriThe URI of this endpoint relative to the
referrer's.
Properties
PollingInterval
The interval in which to send requests to the server.
The server can modify this value using the Retry-After header.
public TimeSpan PollingInterval { get; set; }
Property Value
Methods
GetObservable(long)
Provides an observable stream of elements.
public IObservable<TEntity> GetObservable(long startIndex = 0)
Parameters
startIndexlongThe index of the first element to return in the stream. Use negative values to start counting from the end of the stream.
Returns
- IObservable<TEntity>
A cold observable. HTTP communication only starts on Subscribe(IObserver<T>).
HandleAsync(Func<Task<HttpResponseMessage>>, string)
Handles various cross-cutting concerns regarding a response message such as discovering links and handling errors.
protected override Task<HttpResponseMessage> HandleAsync(Func<Task<HttpResponseMessage>> request, string caller = "unknown")
Parameters
requestFunc<Task<HttpResponseMessage>>A callback that performs the actual HTTP request.
callerstringThe name of the method calling this method.
Returns
- Task<HttpResponseMessage>
The HTTP response.