Package oshi.util.platform.windows
Class PerfDataUtil
- java.lang.Object
-
- oshi.util.platform.windows.PerfDataUtil
-
@ThreadSafe public final class PerfDataUtil extends java.lang.Object
Helper class to centralize the boilerplate portions of PDH counter setup and allow applications to easily add, query, and remove counters.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PerfDataUtil.PerfCounter
Encapsulates the three string components of a performance counter
-
Field Summary
Fields Modifier and Type Field Description private static boolean
IS_VISTA_OR_GREATER
private static org.slf4j.Logger
LOG
private static com.sun.jna.platform.win32.Pdh
PDH
private static com.sun.jna.platform.win32.WinDef.DWORDByReference
PDH_FMT_RAW
private static com.sun.jna.platform.win32.BaseTSD.DWORD_PTR
PZERO
-
Constructor Summary
Constructors Modifier Constructor Description private
PerfDataUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static boolean
addCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference query, java.lang.String path, com.sun.jna.platform.win32.WinNT.HANDLEByReference p)
Adds a pdh counter to a querystatic boolean
closeQuery(com.sun.jna.platform.win32.WinNT.HANDLEByReference q)
Close a pdh querystatic PerfDataUtil.PerfCounter
createCounter(java.lang.String object, java.lang.String instance, java.lang.String counter)
Create a Performance Counterstatic boolean
openQuery(com.sun.jna.platform.win32.WinNT.HANDLEByReference q)
Open a pdh querystatic long
queryCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference counter)
Get value of pdh counterstatic long
querySecondCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference counter)
Get value of pdh counter's second value (base counters)static boolean
removeCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference p)
Remove a pdh counterstatic long
updateQueryTimestamp(com.sun.jna.platform.win32.WinNT.HANDLEByReference query)
Update a query and get the timestamp
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
PZERO
private static final com.sun.jna.platform.win32.BaseTSD.DWORD_PTR PZERO
-
PDH_FMT_RAW
private static final com.sun.jna.platform.win32.WinDef.DWORDByReference PDH_FMT_RAW
-
PDH
private static final com.sun.jna.platform.win32.Pdh PDH
-
IS_VISTA_OR_GREATER
private static final boolean IS_VISTA_OR_GREATER
-
-
Method Detail
-
createCounter
public static PerfDataUtil.PerfCounter createCounter(java.lang.String object, java.lang.String instance, java.lang.String counter)
Create a Performance Counter- Parameters:
object
- The object/path for the counterinstance
- The instance of the counter, or null if no instancecounter
- The counter name- Returns:
- A PerfCounter object encapsulating the object, instance, and counter
-
updateQueryTimestamp
public static long updateQueryTimestamp(com.sun.jna.platform.win32.WinNT.HANDLEByReference query)
Update a query and get the timestamp- Parameters:
query
- The query to update all counters in- Returns:
- The update timestamp of the first counter in the query
-
openQuery
public static boolean openQuery(com.sun.jna.platform.win32.WinNT.HANDLEByReference q)
Open a pdh query- Parameters:
q
- pointer to the query- Returns:
- true if successful
-
closeQuery
public static boolean closeQuery(com.sun.jna.platform.win32.WinNT.HANDLEByReference q)
Close a pdh query- Parameters:
q
- pointer to the query- Returns:
- true if successful
-
queryCounter
public static long queryCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference counter)
Get value of pdh counter- Parameters:
counter
- The counter to get the value of- Returns:
- long value of the counter, or negative value representing an error code
-
querySecondCounter
public static long querySecondCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference counter)
Get value of pdh counter's second value (base counters)- Parameters:
counter
- The counter to get the value of- Returns:
- long value of the counter's second value, or negative value representing an error code
-
addCounter
public static boolean addCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference query, java.lang.String path, com.sun.jna.platform.win32.WinNT.HANDLEByReference p)
Adds a pdh counter to a query- Parameters:
query
- Pointer to the query to add the counterpath
- String name of the PerfMon counter. For Vista+, must be in English. Must localize this path for pre-Vista.p
- Pointer to the counter- Returns:
- true if successful
-
removeCounter
public static boolean removeCounter(com.sun.jna.platform.win32.WinNT.HANDLEByReference p)
Remove a pdh counter- Parameters:
p
- pointer to the counter- Returns:
- true if successful
-
-