/// <summary>
        /// Создать внутренний счётчик на основе существующего счётчика Windows
        /// </summary>
        /// <param name="src">Счётчик Windows</param>
        /// <param name="info">Информацию по функционированию</param>
        /// <returns>Созданный внутренний счётчик</returns>
        public static Counter CreateByExistedCounter(PerformanceCounter src, WinCountersWorkingInfo info)
        {
            CounterTypes reqType;

            if (!TryConvertCounterType(src.CounterType, out reqType))
            {
                return(null);
            }

            return(CreateCounter(reqType, src.CounterName, src.CounterHelp, info));
        }
        /// <summary>
        /// Создать внутренний счётчик на основе существующего счётчика Windows и инициализировать его
        /// </summary>
        /// <param name="src">Счётчик Windows</param>
        /// <param name="info">Информацию по функционированию</param>
        /// <returns>Созданный и инициализированный внутренний счётчик</returns>
        public static Counter CreateByExistedCounterAndInit(PerformanceCounter src, WinCountersWorkingInfo info)
        {
            var res = CreateByExistedCounter(src, info);

            if (res == null)
            {
                return(null);
            }

            ((IWinCounterInitialization)res).CounterInit(src.CategoryName, src.InstanceName);
            return(res);
        }
Esempio n. 3
0
        /// <summary>
        /// Создать категорию с множеством инстансов.
        /// Конкретный тип определяется на основе wrkInfo.
        /// </summary>
        /// <param name="categoryName">Имя категории</param>
        /// <param name="categoryDescription">Описание категории</param>
        /// <param name="rootName">Корневое имя</param>
        /// <param name="wrkInfo">Информация по функционированию</param>
        /// <returns>Созданная категория</returns>
        public static WinMultiInstanceCategory CreateMultiInstanceCategory(string categoryName, string categoryDescription, string rootName, WinCountersWorkingInfo wrkInfo)
        {
            if (wrkInfo.InstantiationMode == WinCountersInstantiationMode.UseOnlyExisted)
            {
                return(new UseOnlyExistedWinMultiInstanceCategory(categoryName, categoryDescription, rootName, wrkInfo));
            }

            return(new RecreateWinMultiInstanceCategory(categoryName, categoryDescription, rootName, wrkInfo));
        }
Esempio n. 4
0
 /// <summary>
 /// Создать пустую категорию
 /// </summary>
 /// <param name="categoryName">Имя категории</param>
 /// <param name="categoryDescription">Описание категории</param>
 /// <param name="rootName">Корневое имя</param>
 /// <param name="wrkInfo">Информация по функционированию</param>
 /// <returns>Созданная категория</returns>
 public static WinEmptyCategory CreateEmptyCategory(string categoryName, string categoryDescription, string rootName, WinCountersWorkingInfo wrkInfo)
 {
     return(new WinEmptyCategory(categoryName, categoryDescription, rootName, wrkInfo));
 }
        /// <summary>
        /// Создать дескриптор счётчика
        /// </summary>
        /// <param name="type">Тип счётчика</param>
        /// <param name="counterName">Имя счётчика</param>
        /// <param name="counterDescription">Описание счётчика</param>
        /// <param name="info">Информацию по функционированию</param>
        /// <returns>Созданный дескриптор</returns>
        public static WinCounterDescriptor CreateCounterDescriptor(CounterTypes type, string counterName, string counterDescription, WinCountersWorkingInfo info)
        {
            switch (type)
            {
            case CounterTypes.NumberOfItems:
                return(WinNumberOfItemsCounter.CreateDescriptor(counterName, counterDescription, info));

            case CounterTypes.Delta:
                return(WinDeltaCounter.CreateDescriptor(counterName, counterDescription, info));

            case CounterTypes.AverageTime:
                return(WinAverageTimeCounter.CreateDescriptor(counterName, counterDescription, info));

            case CounterTypes.AverageCount:
                return(WinAverageCountCounter.CreateDescriptor(counterName, counterDescription, info));

            case CounterTypes.OperationsPerSecond:
                return(WinOperationsPerSecondCounter.CreateDescriptor(counterName, counterDescription, info));

            case CounterTypes.ElapsedTime:
                return(WinElapsedTimeCounter.CreateDescriptor(counterName, counterDescription, info));

            case CounterTypes.MomentTime:
                return(WinMomentTimeCounter.CreateDescriptor(counterName, counterDescription, info));

            default:
                throw new InvalidOperationException("Unknown CounterTypes value: " + type.ToString());
            }
        }