< Summary

Class:Microsoft.Azure.EventHubs.Processor.EventProcessorOptions
Assembly:Microsoft.Azure.EventHubs.Processor
File(s):C:\Git\azure-sdk-for-net\sdk\eventhub\Microsoft.Azure.EventHubs.Processor\src\EventProcessorOptions.cs
Covered lines:0
Uncovered lines:23
Coverable lines:23
Total lines:117
Line coverage:0% (0 of 23)
Covered branches:0
Total branches:2
Branch coverage:0% (0 of 2)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_DefaultOptions()-0%100%
.ctor()-0%100%
SetExceptionHandler(...)-0%100%
get_MaxBatchSize()-0%100%
get_ReceiveTimeout()-0%100%
get_EnableReceiverRuntimeMetric()-0%100%
set_EnableReceiverRuntimeMetric(...)-0%100%
get_PrefetchCount()-0%100%
get_InitialOffsetProvider()-0%100%
get_InvokeProcessorAfterReceiveTimeout()-0%100%
get_WebProxy()-0%100%
set_WebProxy(...)-0%100%
NotifyOfException(...)-0%0%

File(s)

C:\Git\azure-sdk-for-net\sdk\eventhub\Microsoft.Azure.EventHubs.Processor\src\EventProcessorOptions.cs

#LineLine coverage
 1// Copyright (c) Microsoft. All rights reserved.
 2// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 3
 4namespace Microsoft.Azure.EventHubs.Processor
 5{
 6    using System;
 7    using System.Net;
 8
 9    /// <summary>
 10    /// Defines the runtime options when registering an <see cref="IEventProcessor"/> interface with an EventHubConsumer
 11    /// </summary>
 12    public sealed class EventProcessorOptions
 13    {
 14        Action<ExceptionReceivedEventArgs> exceptionHandler;
 15
 16        /// <summary>
 17        /// Returns an EventProcessorOptions instance with all options set to the default values.
 18        /// The default values are:
 19        /// <para>MaxBatchSize: 10</para>
 20        /// <para>ReceiveTimeOut: 1 minute</para>
 21        /// <para>PrefetchCount: 300</para>
 22        /// <para>InitialOffsetProvider: uses the last offset checkpointed, or StartOfStream</para>
 23        /// <para>InvokeProcessorAfterReceiveTimeout: false</para>
 24        /// </summary>
 25        /// <value>an EventProcessorOptions instance with all options set to the default values</value>
 26        public static EventProcessorOptions DefaultOptions
 27        {
 28            get
 29            {
 030                return new EventProcessorOptions();
 31            }
 32        }
 33
 34        /// <summary>
 35        /// Creates a new <see cref="EventProcessorOptions"/> object.
 36        /// </summary>
 037        public EventProcessorOptions()
 38        {
 039            this.MaxBatchSize = 10;
 040            this.PrefetchCount = 300;
 041            this.ReceiveTimeout = TimeSpan.FromMinutes(1);
 042            this.InitialOffsetProvider = partitionId => EventPosition.FromStart();
 043        }
 44
 45        /// <summary>
 46        /// Sets a handler which receives notification of general exceptions.
 47        /// <para>Exceptions which occur while processing events from a particular Event Hub partition are delivered
 48        /// to the onError method of the event processor for that partition. This handler is called on occasions
 49        /// when there is no event processor associated with the throwing activity, or the event processor could
 50        /// not be created.</para>
 51        /// </summary>
 52        /// <param name="exceptionHandler">Handler which is called when an exception occurs. Set to null to stop handlin
 53        public void SetExceptionHandler(Action<ExceptionReceivedEventArgs> exceptionHandler)
 54        {
 055            this.exceptionHandler = exceptionHandler;
 056        }
 57
 58        /// <summary>
 59        /// Returns the maximum size of an event batch that IEventProcessor.ProcessEventsAsync will be called with
 60        /// </summary>
 061        public int MaxBatchSize { get; set; }
 62
 63        /// <summary>
 64        /// Gets or sets the timeout length for receive operations.
 65        /// </summary>
 066        public TimeSpan ReceiveTimeout { get; set; }
 67
 68        /// <summary> Gets or sets a value indicating whether the runtime metric of a receiver is enabled. </summary>
 69        /// <value> true if a client wants to access <see cref="ReceiverRuntimeInformation"/> using <see cref="Partition
 70        public bool EnableReceiverRuntimeMetric
 71        {
 072            get;
 073            set;
 74        }
 75
 76        /// <summary>
 77        /// Gets or sets the current prefetch count for the underlying client.
 78        /// The default is 300.
 79        /// </summary>
 080        public int PrefetchCount { get; set; }
 81
 82        /// <summary>
 83        /// Gets or sets a delegate which is used to get the initial position for a given partition to create <see cref=
 84        /// Delegate is invoked by passing in PartitionId and then user can return <see cref="PartitionReceiver"/> for r
 85        /// This is only used when <see cref="Lease.Offset"/> is not provided and receiver is being created for the very
 86        /// </summary>
 087        public Func<string, EventPosition> InitialOffsetProvider { get; set; }
 88
 89        /// <summary>
 90        /// Returns whether the EventProcessorHost will call IEventProcessor.OnEvents(null) when a receive
 91        /// timeout occurs (true) or not (false).
 92        /// </summary>
 093        public bool InvokeProcessorAfterReceiveTimeout { get; set; }
 94
 95        /// <summary>
 96        /// Gets or sets the web proxy.
 97        /// A proxy is applicable only when transport type is set to AmqpWebSockets.
 98        /// </summary>
 99        public IWebProxy WebProxy
 100        {
 0101            get;
 0102            set;
 103        }
 104
 105        internal void NotifyOfException(string hostname, string partitionId, Exception exception, string action)
 106        {
 107            try
 108            {
 0109                this.exceptionHandler?.Invoke(new ExceptionReceivedEventArgs(hostname, partitionId, exception, action));
 0110            }
 0111            catch
 112            {
 113                // NOOP, Ignore exception from notify callback. Let's avoid chain of exception notification.
 0114            }
 0115        }
 116    }
 117}