Пример #1
0
        /// <summary>
        /// Internal constructor for Chronometer. Initializes a new instance of Chronometer with the given options.
        /// </summary>
        /// <param name="options"><see cref="ChronometerOptions"/></param>
        /// <param name="normalizedMeanCalculator">Implementation of <see cref="INormalizedMeanCalculator"/></param>
        /// <param name="timerFactory">Implementation of <see cref="ITimerFactory"/></param>
        /// <param name="memoryOptimizer">Implementation of <see cref="IMemoryOptimizer"/></param>
        /// <param name="performanceOptimizer">Implementation of <see cref="IPerformanceOptimizer"/></param>
        /// <param name="debugModeDetector">Implementation of <see cref="IDebugModeDetector"/></param>
        internal Chronometer(
            ChronometerOptions options,
            INormalizedMeanCalculator normalizedMeanCalculator,
            ITimerFactory timerFactory,
            IMemoryOptimizer memoryOptimizer,
            IPerformanceOptimizer performanceOptimizer,
            IDebugModeDetector debugModeDetector)
        {
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            if (options.NumberOfInterations == null)
            {
                throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options");
            }

            if (options.NumberOfInterations.HasValue && options.NumberOfInterations.Value < 1)
            {
                throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options");
            }

            if (normalizedMeanCalculator == null)
            {
                throw new ArgumentNullException("normalizedMeanCalculator");
            }

            if (timerFactory == null)
            {
                throw new ArgumentNullException("timerFactory");
            }

            if (memoryOptimizer == null)
            {
                throw new ArgumentNullException("memoryOptimizer");
            }

            if (performanceOptimizer == null)
            {
                throw new ArgumentNullException("performanceOptimizer");
            }

            if (debugModeDetector == null)
            {
                throw new ArgumentNullException("debugModeDetector");
            }

            Options = options;
            _normalizedMeanCalculator = normalizedMeanCalculator;
            _timerFactory             = timerFactory;
            _memoryOptimizer          = memoryOptimizer;
            _performanceOptimizer     = performanceOptimizer;
            _debugModeDetector        = debugModeDetector;
        }
Пример #2
0
        /// <summary>
        /// Internal constructor for Chronometer. Initializes a new instance of Chronometer with the given options.
        /// </summary>
        /// <param name="options"><see cref="ChronometerOptions"/></param>
        /// <param name="normalizedMeanCalculator">Implementation of <see cref="INormalizedMeanCalculator"/></param>
        /// <param name="timerFactory">Implementation of <see cref="ITimerFactory"/></param>
        /// <param name="memoryOptimizer">Implementation of <see cref="IMemoryOptimizer"/></param>
        /// <param name="performanceOptimizer">Implementation of <see cref="IPerformanceOptimizer"/></param>
        /// <param name="debugModeDetector">Implementation of <see cref="IDebugModeDetector"/></param>
        internal Chronometer(
            ChronometerOptions options, 
            INormalizedMeanCalculator normalizedMeanCalculator,
            ITimerFactory timerFactory,
            IMemoryOptimizer memoryOptimizer,
            IPerformanceOptimizer performanceOptimizer,
            IDebugModeDetector debugModeDetector)
        {
            if(options == null)
                throw new ArgumentNullException("options");

            if(options.NumberOfInterations == null)
                throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options");

            if(options.NumberOfInterations.HasValue && options.NumberOfInterations.Value < 1)
                throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options");

            if(normalizedMeanCalculator == null)
                throw new ArgumentNullException("normalizedMeanCalculator");

            if(timerFactory == null)
                throw new ArgumentNullException("timerFactory");

            if (memoryOptimizer == null)
                throw new ArgumentNullException("memoryOptimizer");

            if (performanceOptimizer == null)
                throw new ArgumentNullException("performanceOptimizer");

            if (debugModeDetector == null)
                throw new ArgumentNullException("debugModeDetector");

            Options = options;
            _normalizedMeanCalculator = normalizedMeanCalculator;
            _timerFactory = timerFactory;
            _memoryOptimizer = memoryOptimizer;
            _performanceOptimizer = performanceOptimizer;
            _debugModeDetector = debugModeDetector;
        }