Esempio n. 1
0
        /// <summary>
        /// Gets the calculator for the given activity.
        /// </summary>
        /// <typeparam name="T">The type of the calculator to get.</typeparam>
        /// <param name="activity">The name of the activity.</param>
        private T GetKpiCalculator <T>(string activity)
            where T : PerformanceCalculatorBase
        {
            CalculatorInfo newCalculatorInfo = m_calculatorsDict.GetOrAdd(
                activity,
                (key) =>
            {
                PerformanceCalculatorBase newCalculator = Activator.CreateInstance(typeof(T), activity) as PerformanceCalculatorBase;
                newCalculator.Parent = this;

                CalculatorInfo calcInfo = new CalculatorInfo(newCalculator);
                m_calculatorsBag.Add(calcInfo);
                return(calcInfo);
            });


            if ((newCalculatorInfo == null) ||
                (newCalculatorInfo.Calculator == null))
            {
                throw new SeeingSharpException("Unable to create a calculator of type " + typeof(T) + " for activity " + activity + "!");
            }

            T result = newCalculatorInfo.Calculator as T;

            if (result == null)
            {
                throw new SeeingSharpException("Unable to create a calculator of type " + typeof(T) + " for activity " + activity + "!");
            }

            return(result);
        }
Esempio n. 2
0
 public CalculatorInfo(PerformanceCalculatorBase calculator)
 {
     this.Calculator = calculator;
     this.Results    = new BlockingCollection <PerformanceAnalyzeResultBase>();
 }
Esempio n. 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PerformanceAnalyzeResultBase"/> class.
 /// </summary>
 /// <param name="calculator">The Calculator this result object belongs to.</param>
 /// <param name="keyTimestamp">The key of this result object..</param>
 internal PerformanceAnalyzeResultBase(PerformanceCalculatorBase calculator, DateTime keyTimestamp)
 {
     m_calculator   = calculator;
     m_keyTimestamp = keyTimestamp;
 }