/// <summary> /// Used by the <see cref="RingBuffer{T}"/> as a polymorphic constructor. /// </summary> /// <param name="option">strategy to be used.</param> /// <returns>a new instance of the ClaimStrategy</returns> public static IClaimStrategy GetInstance(ClaimStrategyOption option) { switch (option) { case ClaimStrategyOption.Multithreaded: return new MultiThreadedStrategy(); case ClaimStrategyOption.SingleThreaded: return new SingleThreadedStrategy(); default: throw new InvalidOperationException("Option not supported"); } }
/// <summary> /// Used by the <see cref="RingBuffer{T}"/> as a polymorphic constructor. /// </summary> /// <param name="option">strategy to be used.</param> /// <returns>a new instance of the ClaimStrategy</returns> public static IClaimStrategy GetInstance(ClaimStrategyOption option) { switch (option) { case ClaimStrategyOption.Multithreaded: return(new MultiThreadedStrategy()); case ClaimStrategyOption.SingleThreaded: return(new SingleThreadedStrategy()); default: throw new InvalidOperationException("Option not supported"); } }