public PartitionSupervisorFactory( IChangeFeedObserverFactory observerFactory, ILeaseManager leaseManager, ILeaseCheckpointer leaseCheckpointer, ICheckpointPartitionProcessorFactory partitionProcessorFactory, ChangeFeedProcessorOptions options) { if (observerFactory == null) { throw new ArgumentNullException(nameof(observerFactory)); } if (leaseManager == null) { throw new ArgumentNullException(nameof(leaseManager)); } if (leaseCheckpointer == null) { throw new ArgumentNullException(nameof(leaseCheckpointer)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (partitionProcessorFactory == null) { throw new ArgumentNullException(nameof(partitionProcessorFactory)); } this.observerFactory = observerFactory; this.leaseManager = leaseManager; this.leaseCheckpointer = leaseCheckpointer; this.changeFeedProcessorOptions = options; this.partitionProcessorFactory = partitionProcessorFactory; }
/// <summary> /// Sets the <see cref="ICheckpointPartitionProcessorFactory"/> to be used to create <see cref="IPartitionProcessor"/> for partition processing. /// </summary> /// <param name="partitionProcessorFactory">The instance of <see cref="IPartitionProcessorFactory"/> to use.</param> /// <returns>The instance of <see cref="ChangeFeedProcessorBuilder"/> to use.</returns> public ChangeFeedProcessorBuilder WithCheckpointPartitionProcessorFactory(ICheckpointPartitionProcessorFactory partitionProcessorFactory) { if (partitionProcessorFactory == null) { throw new ArgumentNullException(nameof(partitionProcessorFactory)); } this.checkpointPartitionProcessorFactory = partitionProcessorFactory; return(this); }
private ICheckpointPartitionProcessorFactory GetPartitionProcessorFactory(string feedCollectionSelfLink) { ICheckpointPartitionProcessorFactory factory = this.checkpointPartitionProcessorFactory; if (this.partitionProcessorFactory != null) { if (this.checkpointPartitionProcessorFactory != null) { throw new ArgumentException("Only one partition processor factory can be used"); } factory = new CheckpointPartitionProcessorFactoryAdapter(this.partitionProcessorFactory); } return(factory ?? new PartitionProcessorFactory( this.feedDocumentClient, this.changeFeedProcessorOptions, feedCollectionSelfLink, this.healthMonitor)); }