All Downloads are FREE. Search and download functionalities are using the official Maven repository.

oshi.hardware.HardwareAbstractionLayer Maven / Gradle / Ivy

package oshi.hardware;

import java.io.Serializable;

/**
 * @author angju
 * 
 */
public interface HardwareAbstractionLayer extends Serializable {

    /**
     * Instantiates a {@link ComputerSystem} object. This represents the
     * physical hardware, including components such as BIOS/Firmware and a
     * motherboard, logic board, etc.
     *
     * @return a {@link ComputerSystem} object.
     */
    ComputerSystem getComputerSystem();

    /**
     * Instantiates a {@link CentralProcessor} object. This represents one or
     * more Logical CPUs.
     *
     * @return A {@link CentralProcessor} object.
     */
    CentralProcessor getProcessor();

    /**
     * Instantiates a {@link GlobalMemory} object.
     *
     * @return A memory object.
     */
    GlobalMemory getMemory();

    /**
     * Instantiates an array of {@link PowerSource} objects, representing
     * batteries, etc.
     *
     * @return An array of PowerSource objects or an empty array if none are
     *         present.
     */
    PowerSource[] getPowerSources();

    /**
     * Instantiates an array of {@link HWDiskStore} objects, representing a
     * physical hard disk or other similar storage device
     *
     * @return An array of HWDiskStore objects or an empty array if none are
     *         present.
     */
    HWDiskStore[] getDiskStores();

    /**
     * Instantiates an array of {@link NetworkIF} objects, representing a
     * network interface
     *
     * @return An array of HWNetworkStore objects or an empty array if none are
     *         present.
     */
    NetworkIF[] getNetworkIFs();

    /**
     * Instantiates an array of {@link Display} objects, representing monitors
     * or other video output devices.
     *
     * @return An array of Display objects or an empty array if none are
     *         present.
     */
    Display[] getDisplays();

    /**
     * Instantiates a {@link Sensors} object, representing CPU temperature and
     * fan speed
     *
     * @return A Sensors object
     */
    Sensors getSensors();

    /**
     * Instantiates an array of {@link UsbDevice} objects, representing devices
     * connected via a usb port (including internal devices).
     *
     * If the value of tree is true, the top level devices returned from this
     * method are the USB Controllers; connected hubs and devices in its device
     * tree share that controller's bandwidth. If the value of tree is false,
     * USB devices (not controllers) are listed in a single flat array.
     *
     * @param tree
     *            WHether to display devices in a nested tree format from their
     *            controllers
     * @return An array of UsbDevice objects representing (optionally) the USB
     *         Controllers and devices connected to them, or an empty array if
     *         none are present
     */
    UsbDevice[] getUsbDevices(boolean tree);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy