/// <summary> /// Конструктор WinCounterFactory /// </summary> /// <param name="instMode">Режим работы</param> /// <param name="namePrefix">Префикс имени категории</param> /// <param name="machineName">Имя машины (null или '.' для локальной)</param> /// <param name="readOnlyCounters">Счётчики только для чтения</param> /// <param name="preferedBitness">Предпочитать ли 64 битные счётчики</param> /// <param name="existedInstancesTreatment">Как обрабатывать существующие в Windows инстансы</param> public WinCounterFactory(WinCountersInstantiationMode instMode, string namePrefix, string machineName, bool readOnlyCounters, WinCountersPreferedBitness preferedBitness, WinCountersExistedInstancesTreatment existedInstancesTreatment) { bool prefer64BitCounters = Environment.Is64BitOperatingSystem; if (preferedBitness == WinCountersPreferedBitness.Prefer32BitCounters) { prefer64BitCounters = false; } else if (preferedBitness == WinCountersPreferedBitness.Prefer64BitCounters) { prefer64BitCounters = true; } _info = new WinCountersWorkingInfo(instMode, machineName, readOnlyCounters, prefer64BitCounters, existedInstancesTreatment); _namePrefix = namePrefix != null?namePrefix.TrimEnd('.') : ""; _state = WinCategoryState.Created; _childCategories = new List <Category>(); }
/// <summary> /// Конструктор WinCountersWorkingInfo /// </summary> /// <param name="instMode">Режим работы</param> /// <param name="machineName">Имя машины</param> /// <param name="readOnlyCounters">Счётчики только для чтения</param> /// <param name="prefer64bitCounters">Предпочтение 64-ёх битным счётчикам</param> /// <param name="existedInstancesTreatment">Как обрабатывать существующие в Windows инстансы</param> public WinCountersWorkingInfo(WinCountersInstantiationMode instMode, string machineName, bool readOnlyCounters, bool prefer64bitCounters, WinCountersExistedInstancesTreatment existedInstancesTreatment) { InstantiationMode = instMode; MachineName = string.IsNullOrEmpty(machineName) ? "." : machineName; IsLocalMachine = MachineName == "."; ReadOnlyCounters = readOnlyCounters; Prefer64BitCounters = prefer64bitCounters; ExistedInstancesTreatment = existedInstancesTreatment; if (!IsLocalMachine) { if (instMode != WinCountersInstantiationMode.UseOnlyExisted) { throw new ArgumentException("Counters on remote machine can be used only in UseOnlyExisted mode"); } if (!readOnlyCounters) { throw new ArgumentException("Counters on remote machine should be in ReadOnly mode"); } } }
/// <summary> /// Конструктор WinCounterFactory /// </summary> /// <param name="instMode">Режим работы</param> public WinCounterFactory(WinCountersInstantiationMode instMode) : this(instMode, null, ".", false, WinCountersPreferedBitness.SameAsOperatingSystemBitness, WinCountersExistedInstancesTreatment.LoadExisted) { }
/// <summary> /// Конструктор WinCounterFactory /// </summary> /// <param name="instMode">Режим работы</param> /// <param name="namePrefix">Префикс имени категории</param> /// <param name="machineName">Имя машины (null или '.' для локальной)</param> /// <param name="readOnlyCounters">Счётчики только для чтения</param> public WinCounterFactory(WinCountersInstantiationMode instMode, string namePrefix, string machineName, bool readOnlyCounters) : this(instMode, namePrefix, machineName, readOnlyCounters, WinCountersPreferedBitness.SameAsOperatingSystemBitness, WinCountersExistedInstancesTreatment.LoadExisted) { }