public ReadFeedCrossFeedRangeState Merge(ReadFeedCrossFeedRangeState first) { Memory <FeedRangeState <ReadFeedState> > mergedRange = CrossFeedRangeStateSplitterAndMerger.Merge <ReadFeedState>( this.FeedRangeStates, first.FeedRangeStates); return(new ReadFeedCrossFeedRangeState(mergedRange)); }
public ChangeFeedCrossFeedRangeState Merge(ChangeFeedCrossFeedRangeState first, ChangeFeedCrossFeedRangeState second) { Memory <FeedRangeState <ChangeFeedState> > mergedRange = CrossFeedRangeStateSplitterAndMerger.Merge <ChangeFeedState>( this.FeedRangeStates, first.FeedRangeStates, second.FeedRangeStates); return(new ChangeFeedCrossFeedRangeState(mergedRange)); }
public bool TrySplit(out ReadFeedCrossFeedRangeState first, out ReadFeedCrossFeedRangeState second) { if (!CrossFeedRangeStateSplitterAndMerger.TrySplit( this.FeedRangeStates, out ReadOnlyMemory <FeedRangeState <ReadFeedState> > firstRange, out ReadOnlyMemory <FeedRangeState <ReadFeedState> > secondRange)) { first = default; second = default; return(false); } first = new ReadFeedCrossFeedRangeState(firstRange); second = new ReadFeedCrossFeedRangeState(secondRange); return(true); }
public ReadFeedCrossFeedRangeState Merge(IReadOnlyList <ReadFeedCrossFeedRangeState> readFeedCrossFeedRangeStates) { List <ReadOnlyMemory <FeedRangeState <ReadFeedState> > > varArgs = new List <ReadOnlyMemory <FeedRangeState <ReadFeedState> > >(1 + readFeedCrossFeedRangeStates.Count) { this.FeedRangeStates }; foreach (ReadFeedCrossFeedRangeState readFeedCrossFeedRangeState in readFeedCrossFeedRangeStates) { varArgs.Add(readFeedCrossFeedRangeState.FeedRangeStates); } Memory <FeedRangeState <ReadFeedState> > mergedRange = CrossFeedRangeStateSplitterAndMerger.Merge <ReadFeedState>(varArgs); return(new ReadFeedCrossFeedRangeState(mergedRange)); }
public ChangeFeedCrossFeedRangeState Merge(IReadOnlyList <ChangeFeedCrossFeedRangeState> changeFeedCrossFeedRangeStates) { List <ReadOnlyMemory <FeedRangeState <ChangeFeedState> > > varArgs = new List <ReadOnlyMemory <FeedRangeState <ChangeFeedState> > >(1 + changeFeedCrossFeedRangeStates.Count) { this.FeedRangeStates }; foreach (ChangeFeedCrossFeedRangeState changeFeedCrossFeedRangeState in changeFeedCrossFeedRangeStates) { varArgs.Add(changeFeedCrossFeedRangeState.FeedRangeStates); } Memory <FeedRangeState <ChangeFeedState> > mergedRange = CrossFeedRangeStateSplitterAndMerger.Merge <ChangeFeedState>(varArgs); return(new ChangeFeedCrossFeedRangeState(mergedRange)); }
// TODO: Add more varadic split methods. public bool TrySplit( int numberOfPartitions, out List <ReadFeedCrossFeedRangeState> partitions) { if (!CrossFeedRangeStateSplitterAndMerger.TrySplit( this.FeedRangeStates, numberOfPartitions, out List <ReadOnlyMemory <FeedRangeState <ReadFeedState> > > partitionsAfterSplit)) { partitions = default; return(false); } partitions = new List <ReadFeedCrossFeedRangeState>(partitionsAfterSplit.Count); foreach (ReadOnlyMemory <FeedRangeState <ReadFeedState> > partition in partitionsAfterSplit) { partitions.Add(new ReadFeedCrossFeedRangeState(partition)); } return(true); }