public static TryCatch <CrossPartitionChangeFeedAsyncEnumerator> MonadicCreate( IDocumentContainer documentContainer, ChangeFeedRequestOptions changeFeedRequestOptions, ChangeFeedStartFrom changeFeedStartFrom, CancellationToken cancellationToken) { changeFeedRequestOptions ??= new ChangeFeedRequestOptions(); if (documentContainer == null) { throw new ArgumentNullException(nameof(documentContainer)); } if (changeFeedStartFrom == null) { throw new ArgumentNullException(nameof(changeFeedStartFrom)); } TryCatch <CrossPartitionState <ChangeFeedState> > monadicCrossPartitionState = changeFeedStartFrom.Accept(CrossPartitionStateExtractor.Singleton); if (monadicCrossPartitionState.Failed) { return(TryCatch <CrossPartitionChangeFeedAsyncEnumerator> .FromException(monadicCrossPartitionState.Exception)); } CrossPartitionRangePageAsyncEnumerator <ChangeFeedPage, ChangeFeedState> crossPartitionEnumerator = new CrossPartitionRangePageAsyncEnumerator <ChangeFeedPage, ChangeFeedState>( documentContainer, CrossPartitionChangeFeedAsyncEnumerator.MakeCreateFunction( documentContainer, changeFeedRequestOptions.PageSizeHint.GetValueOrDefault(int.MaxValue), cancellationToken), comparer: default /* this uses a regular queue instead of prioirty queue */,
public static CrossPartitionChangeFeedAsyncEnumerator Create( IDocumentContainer documentContainer, ChangeFeedMode changeFeedMode, ChangeFeedRequestOptions changeFeedRequestOptions, CrossFeedRangeState <ChangeFeedState> state, CancellationToken cancellationToken) { changeFeedRequestOptions ??= new ChangeFeedRequestOptions(); if (documentContainer == null) { throw new ArgumentNullException(nameof(documentContainer)); } if (changeFeedMode == null) { throw new ArgumentNullException(nameof(changeFeedMode)); } CrossPartitionRangePageAsyncEnumerator <ChangeFeedPage, ChangeFeedState> crossPartitionEnumerator = new CrossPartitionRangePageAsyncEnumerator <ChangeFeedPage, ChangeFeedState>( documentContainer, CrossPartitionChangeFeedAsyncEnumerator.MakeCreateFunction( documentContainer, changeFeedRequestOptions.PageSizeHint.GetValueOrDefault(int.MaxValue), changeFeedMode, changeFeedRequestOptions?.JsonSerializationFormatOptions?.JsonSerializationFormat, cancellationToken), comparer: default /* this uses a regular queue instead of prioirty queue */,
public static CrossPartitionChangeFeedAsyncEnumerator Create( IDocumentContainer documentContainer, CrossFeedRangeState <ChangeFeedState> state, ChangeFeedPaginationOptions changeFeedPaginationOptions, CancellationToken cancellationToken) { changeFeedPaginationOptions ??= ChangeFeedPaginationOptions.Default; if (documentContainer == null) { throw new ArgumentNullException(nameof(documentContainer)); } CrossPartitionRangePageAsyncEnumerator <ChangeFeedPage, ChangeFeedState> crossPartitionEnumerator = new CrossPartitionRangePageAsyncEnumerator <ChangeFeedPage, ChangeFeedState>( documentContainer, CrossPartitionChangeFeedAsyncEnumerator.MakeCreateFunction( documentContainer, changeFeedPaginationOptions, cancellationToken), comparer: default /* this uses a regular queue instead of prioirty queue */,