Class PerfCounterQuery

java.lang.Object
oshi.util.platform.windows.PerfCounterQuery

@ThreadSafe public final class PerfCounterQuery extends Object
Enables queries of Performance Counters using wild cards to filter instances
  • Field Details

  • Method Details

    • queryValues

      public static <T extends Enum<T>> Map<T,Long> queryValues(Class<T> propertyEnum, String perfObject, String perfWmiClass)
      Query the a Performance Counter using PDH, with WMI backup on failure, for values corresponding to the property enum.
      Type Parameters:
      T - The enum type of propertyEnum
      Parameters:
      propertyEnum - An enum which implements PerfCounterQuery.PdhCounterProperty and contains the WMI field (Enum value) and PDH Counter string (instance and counter)
      perfObject - The PDH object for this counter; all counters on this object will be refreshed at the same time
      perfWmiClass - The WMI PerfData_RawData_* class corresponding to the PDH object
      Returns:
      An EnumMap of the values indexed by propertyEnum on success, or an empty map if both PDH and WMI queries failed.
    • queryValuesFromPDH

      public static <T extends Enum<T>> Map<T,Long> queryValuesFromPDH(Class<T> propertyEnum, String perfObject)
      Query the a Performance Counter using PDH for values corresponding to the property enum.
      Type Parameters:
      T - The enum type of propertyEnum
      Parameters:
      propertyEnum - An enum which implements PerfCounterQuery.PdhCounterProperty and contains the WMI field (Enum value) and PDH Counter string (instance and counter)
      perfObject - The PDH object for this counter; all counters on this object will be refreshed at the same time
      Returns:
      An EnumMap of the values indexed by propertyEnum on success, or an empty map if the PDH query failed.
    • queryValuesFromWMI

      public static <T extends Enum<T>> Map<T,Long> queryValuesFromWMI(Class<T> propertyEnum, String wmiClass)
      Query the a Performance Counter using WMI for values corresponding to the property enum.
      Type Parameters:
      T - The enum type of propertyEnum
      Parameters:
      propertyEnum - An enum which implements PerfCounterQuery.PdhCounterProperty and contains the WMI field (Enum value) and PDH Counter string (instance and counter)
      wmiClass - The WMI PerfData_RawData_* class corresponding to the PDH object
      Returns:
      An EnumMap of the values indexed by propertyEnum if successful, an empty map if the WMI query failed.
    • localizeIfNeeded

      public static String localizeIfNeeded(String perfObject, boolean force)
      Localize a PerfCounter string. English counter names should normally be in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Counter, but language manipulations may delete the 009 index. In this case we can assume English must be the language and continue. We may still fail to match the name if the assumption is wrong but it's better than nothing.
      Parameters:
      perfObject - A String to localize
      force - If true, always localize
      Returns:
      The localized string if localization successful, or the original string otherwise.