/// <summary> /// Initializes a new instance of the <see cref="EventProcessor"/> class. /// </summary> /// /// <param name="consumerGroup">The name of the consumer group this event processor is associated with. Events are read in the context of this group.</param> /// <param name="eventHubClient">The client used to interact with the Azure Event Hubs service.</param> /// <param name="partitionProcessorFactory">Creates an instance of a class implementing the <see cref="IPartitionProcessor" /> interface.</param> /// <param name="partitionManager">Interacts with the storage system, dealing with ownership and checkpoints.</param> /// <param name="options">The set of options to use for this event processor.</param> /// /// <remarks> /// Ownership of the <paramref name="eventHubClient" /> is assumed to be responsibility of the caller; this /// processor will delegate operations to it, but will not perform any clean-up tasks, such as closing or /// disposing of the instance. /// </remarks> /// public EventProcessor(string consumerGroup, EventHubClient eventHubClient, Func <PartitionContext, CheckpointManager, IPartitionProcessor> partitionProcessorFactory, PartitionManager partitionManager, EventProcessorOptions options = default) { Guard.ArgumentNotNullOrEmpty(nameof(consumerGroup), consumerGroup); Guard.ArgumentNotNull(nameof(eventHubClient), eventHubClient); Guard.ArgumentNotNull(nameof(partitionProcessorFactory), partitionProcessorFactory); Guard.ArgumentNotNull(nameof(partitionManager), partitionManager); InnerClient = eventHubClient; ConsumerGroup = consumerGroup; PartitionProcessorFactory = partitionProcessorFactory; Manager = partitionManager; Options = options?.Clone() ?? new EventProcessorOptions(); Identifier = Guid.NewGuid().ToString(); PartitionPumps = new ConcurrentDictionary <string, PartitionPump>(); }
/// <summary> /// Initializes a new instance of the <see cref="EventProcessor{T}"/> class. /// </summary> /// /// <param name="consumerGroup">The name of the consumer group this event processor is associated with. Events are read in the context of this group.</param> /// <param name="eventHubClient">The client used to interact with the Azure Event Hubs service.</param> /// <param name="partitionProcessorFactory">Creates a partition processor instance for the associated <see cref="PartitionContext" />.</param> /// <param name="partitionManager">Interacts with the storage system with responsibility for creation of checkpoints and for ownership claim.</param> /// <param name="options">The set of options to use for this event processor.</param> /// /// <remarks> /// Ownership of the <paramref name="eventHubClient" /> is assumed to be responsibility of the caller; this /// processor will delegate operations to it, but will not perform any clean-up tasks, such as closing or /// disposing of the instance. /// </remarks> /// public EventProcessor(string consumerGroup, EventHubClient eventHubClient, Func <PartitionContext, BasePartitionProcessor> partitionProcessorFactory, PartitionManager partitionManager, EventProcessorOptions options = default) { Argument.AssertNotNullOrEmpty(consumerGroup, nameof(consumerGroup)); Argument.AssertNotNull(eventHubClient, nameof(eventHubClient)); Argument.AssertNotNull(partitionProcessorFactory, nameof(partitionProcessorFactory)); Argument.AssertNotNull(partitionManager, nameof(partitionManager)); InnerClient = eventHubClient; ConsumerGroup = consumerGroup; PartitionProcessorFactory = partitionProcessorFactory; Manager = partitionManager; Options = options?.Clone() ?? new EventProcessorOptions(); Identifier = Guid.NewGuid().ToString(); PartitionPumps = new ConcurrentDictionary <string, PartitionPump>(); }