Package oshi.hardware.platform.windows
Class WindowsHWDiskStore
- java.lang.Object
-
- oshi.hardware.common.AbstractHWDiskStore
-
- oshi.hardware.platform.windows.WindowsHWDiskStore
-
- All Implemented Interfaces:
HWDiskStore
@ThreadSafe public final class WindowsHWDiskStore extends AbstractHWDiskStore
Windows hard disk implementation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
WindowsHWDiskStore.DiskStats
Maps to store read/write bytes per drive indexprivate static class
WindowsHWDiskStore.PartitionMaps
Maps for the partition structure
-
Field Summary
Fields Modifier and Type Field Description private long
currentQueueLength
private static java.util.regex.Pattern
DEVICE_ID
private static int
GUID_BUFSIZE
private static org.slf4j.Logger
LOG
private java.util.List<HWPartition>
partitionList
private static java.lang.String
PHYSICALDRIVE_PREFIX
private long
readBytes
private long
reads
private long
timeStamp
private long
transferTime
private long
writeBytes
private long
writes
-
Constructor Summary
Constructors Modifier Constructor Description private
WindowsHWDiskStore(java.lang.String name, java.lang.String model, java.lang.String serial, long size)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getCurrentQueueLength()
The length of the disk queue (#I/O's in progress).static java.util.List<HWDiskStore>
getDisks()
Gets the disks on this machineprivate static java.lang.String
getIndexFromName(java.lang.String s)
Parse a drive name like "0 C:" to just the index "0"java.util.List<HWPartition>
getPartitions()
The partitions on this disk.long
getReadBytes()
The number of bytes read from the disklong
getReads()
The number of reads from the disklong
getTimeStamp()
The time this disk's statistics were updated.long
getTransferTime()
The time spent reading or writing, in milliseconds.long
getWriteBytes()
The number of bytes written to the disklong
getWrites()
The number of writes to the diskprivate static WindowsHWDiskStore.PartitionMaps
queryPartitionMaps(WmiQueryHandler h)
private static WindowsHWDiskStore.DiskStats
queryReadWriteStats(java.lang.String index)
Gets disk stats for the specified index.boolean
updateAttributes()
Make a best effort to update all the statistics about the drive without needing to recreate the drive list.
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
PHYSICALDRIVE_PREFIX
private static final java.lang.String PHYSICALDRIVE_PREFIX
- See Also:
- Constant Field Values
-
DEVICE_ID
private static final java.util.regex.Pattern DEVICE_ID
-
GUID_BUFSIZE
private static final int GUID_BUFSIZE
- See Also:
- Constant Field Values
-
reads
private long reads
-
readBytes
private long readBytes
-
writes
private long writes
-
writeBytes
private long writeBytes
-
currentQueueLength
private long currentQueueLength
-
transferTime
private long transferTime
-
timeStamp
private long timeStamp
-
partitionList
private java.util.List<HWPartition> partitionList
-
-
Method Detail
-
getReads
public long getReads()
Description copied from interface:HWDiskStore
The number of reads from the disk- Returns:
- the reads
-
getReadBytes
public long getReadBytes()
Description copied from interface:HWDiskStore
The number of bytes read from the disk- Returns:
- the bytes read
-
getWrites
public long getWrites()
Description copied from interface:HWDiskStore
The number of writes to the disk- Returns:
- the writes
-
getWriteBytes
public long getWriteBytes()
Description copied from interface:HWDiskStore
The number of bytes written to the disk- Returns:
- the bytes written
-
getCurrentQueueLength
public long getCurrentQueueLength()
Description copied from interface:HWDiskStore
The length of the disk queue (#I/O's in progress). Includes I/O requests that have been issued to the device driver but have not yet completed. Not supported on macOS.- Returns:
- the current disk queue length
-
getTransferTime
public long getTransferTime()
Description copied from interface:HWDiskStore
The time spent reading or writing, in milliseconds.- Returns:
- the transfer time
-
getTimeStamp
public long getTimeStamp()
Description copied from interface:HWDiskStore
The time this disk's statistics were updated.- Returns:
- the timeStamp, in milliseconds since the epoch.
-
getPartitions
public java.util.List<HWPartition> getPartitions()
Description copied from interface:HWDiskStore
The partitions on this disk.- Returns:
- an
UnmodifiableList
of the partitions on this drive.
-
updateAttributes
public boolean updateAttributes()
Description copied from interface:HWDiskStore
Make a best effort to update all the statistics about the drive without needing to recreate the drive list. This method provides for more frequent periodic updates of individual drive statistics but may be less efficient to use if updating all drives. It will not detect if a removable drive has been removed and replaced by a different drive in between method calls.- Returns:
- True if the update was (probably) successful, false if the disk was not found
-
getDisks
public static java.util.List<HWDiskStore> getDisks()
Gets the disks on this machine- Returns:
- a list of
HWDiskStore
objects representing the disks
-
queryReadWriteStats
private static WindowsHWDiskStore.DiskStats queryReadWriteStats(java.lang.String index)
Gets disk stats for the specified index. If the index is null, populates all the maps- Parameters:
index
- The index to populate/update maps for- Returns:
- An object encapsulating maps with the stats
-
queryPartitionMaps
private static WindowsHWDiskStore.PartitionMaps queryPartitionMaps(WmiQueryHandler h)
-
getIndexFromName
private static java.lang.String getIndexFromName(java.lang.String s)
Parse a drive name like "0 C:" to just the index "0"- Parameters:
s
- A drive name to parse- Returns:
- The first space-delimited value
-
-