Package oshi.software.common
Class AbstractOperatingSystem
java.lang.Object
oshi.software.common.AbstractOperatingSystem
- All Implemented Interfaces:
OperatingSystem
- Direct Known Subclasses:
FreeBsdOperatingSystem
,LinuxOperatingSystem
,MacOperatingSystem
,SolarisOperatingSystem
,WindowsOperatingSystem
public abstract class AbstractOperatingSystem extends java.lang.Object implements OperatingSystem
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractOperatingSystem.FamilyVersionInfo
Nested classes/interfaces inherited from interface oshi.software.os.OperatingSystem
OperatingSystem.OSVersionInfo, OperatingSystem.ProcessSort
-
Constructor Summary
Constructors Constructor Description AbstractOperatingSystem()
-
Method Summary
Modifier and Type Method Description int
getBitness()
Gets the bitness (32 or 64) of the operating system.java.lang.String
getFamily()
Operating system family.java.lang.String
getManufacturer()
Manufacturer.java.util.List<OSProcess>
getProcesses()
Gets currently running processes.java.util.List<OSProcess>
getProcesses(java.util.Collection<java.lang.Integer> pids)
Gets information on aCollection
of currently running processes.OSService[]
getServices()
Gets the all services on the system.OperatingSystem.OSVersionInfo
getVersionInfo()
Operating system version information.boolean
isElevated()
Determine whether the current process has elevated permissions such as sudo / Administratorprotected java.util.List<OSProcess>
processSort(java.util.List<OSProcess> processes, int limit, OperatingSystem.ProcessSort sort)
Sorts an array of processes using the specified sorting, returning an array with the top limit results if positive.protected abstract int
queryBitness(int jvmBitness)
Backup OS-specific query to determine bitness if previous checks failprotected abstract boolean
queryElevated()
protected abstract AbstractOperatingSystem.FamilyVersionInfo
queryFamilyVersionInfo()
protected abstract java.lang.String
queryManufacturer()
java.lang.String
toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface oshi.software.os.OperatingSystem
getChildProcesses, getFileSystem, getInternetProtocolStats, getNetworkParams, getProcess, getProcessCount, getProcesses, getProcessId, getSystemBootTime, getSystemUptime, getThreadCount
-
Constructor Details
-
AbstractOperatingSystem
public AbstractOperatingSystem()
-
-
Method Details
-
getManufacturer
public java.lang.String getManufacturer()Description copied from interface:OperatingSystem
Manufacturer.- Specified by:
getManufacturer
in interfaceOperatingSystem
- Returns:
- String.
-
queryManufacturer
protected abstract java.lang.String queryManufacturer() -
getFamily
public java.lang.String getFamily()Description copied from interface:OperatingSystem
Operating system family.- Specified by:
getFamily
in interfaceOperatingSystem
- Returns:
- String.
-
getVersionInfo
Description copied from interface:OperatingSystem
Operating system version information.- Specified by:
getVersionInfo
in interfaceOperatingSystem
- Returns:
- Version information.
-
queryFamilyVersionInfo
-
getBitness
public int getBitness()Description copied from interface:OperatingSystem
Gets the bitness (32 or 64) of the operating system.- Specified by:
getBitness
in interfaceOperatingSystem
- Returns:
- The number of bits supported by the operating system.
-
queryBitness
protected abstract int queryBitness(int jvmBitness)Backup OS-specific query to determine bitness if previous checks fail- Parameters:
jvmBitness
- The bitness of the JVM- Returns:
- The operating system bitness
-
isElevated
public boolean isElevated()Description copied from interface:OperatingSystem
Determine whether the current process has elevated permissions such as sudo / Administrator- Specified by:
isElevated
in interfaceOperatingSystem
- Returns:
- True if this process has elevated permissions
-
getServices
Description copied from interface:OperatingSystem
Gets the all services on the system. The definition of what is a service is platform-dependent.- Specified by:
getServices
in interfaceOperatingSystem
- Returns:
- An array of
OSService
objects
-
queryElevated
protected abstract boolean queryElevated() -
processSort
protected java.util.List<OSProcess> processSort(java.util.List<OSProcess> processes, int limit, OperatingSystem.ProcessSort sort)Sorts an array of processes using the specified sorting, returning an array with the top limit results if positive.- Parameters:
processes
- The array to sortlimit
- The number of results to return if positive; if zero returns all resultssort
- The sorting to use, or null- Returns:
- An array of size limit (if positive) or of all processes, sorted as specified
-
getProcesses
Description copied from interface:OperatingSystem
Gets currently running processes. No order is guaranteed.- Specified by:
getProcesses
in interfaceOperatingSystem
- Returns:
- An
UnmodifiableList
ofOSProcess
objects for the specified number (or all) of currently running processes, sorted as specified. The list may contain null elements or processes with a state ofOSProcess.State.INVALID
if a process terminates during iteration.
-
getProcesses
Description copied from interface:OperatingSystem
Gets information on aCollection
of currently running processes. This has potentially improved performance vs. iterating individual processes.- Specified by:
getProcesses
in interfaceOperatingSystem
- Parameters:
pids
- A collection of process IDs- Returns:
- An
UnmodifiableList
ofOSProcess
objects for the specified process ids if it is running
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-