001package com.pi4j.system; 002 003/* 004 * #%L 005 * ********************************************************************** 006 * ORGANIZATION : Pi4J 007 * PROJECT : Pi4J :: Java Library (Core) 008 * FILENAME : SystemInfoProvider.java 009 * 010 * This file is part of the Pi4J project. More information about 011 * this project can be found here: https://www.pi4j.com/ 012 * ********************************************************************** 013 * %% 014 * Copyright (C) 2012 - 2019 Pi4J 015 * %% 016 * This program is free software: you can redistribute it and/or modify 017 * it under the terms of the GNU Lesser General Public License as 018 * published by the Free Software Foundation, either version 3 of the 019 * License, or (at your option) any later version. 020 * 021 * This program is distributed in the hope that it will be useful, 022 * but WITHOUT ANY WARRANTY; without even the implied warranty of 023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 024 * GNU General Lesser Public License for more details. 025 * 026 * You should have received a copy of the GNU General Lesser Public 027 * License along with this program. If not, see 028 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 029 * #L% 030 */ 031 032import java.io.IOException; 033import java.text.ParseException; 034 035/** 036 * SystemInfo provider interface. Used to support multiple platforms where each may need to 037 * have a platform specific implementation of the system info. 038 */ 039public interface SystemInfoProvider { 040 String getProcessor() throws IOException, InterruptedException, UnsupportedOperationException; 041 String getModelName() throws IOException, InterruptedException, UnsupportedOperationException; 042 String getBogoMIPS() throws IOException, InterruptedException, UnsupportedOperationException; 043 String[] getCpuFeatures() throws IOException, InterruptedException, UnsupportedOperationException; 044 String getCpuImplementer() throws IOException, InterruptedException, UnsupportedOperationException; 045 String getCpuArchitecture() throws IOException, InterruptedException, UnsupportedOperationException; 046 String getCpuVariant() throws IOException, InterruptedException, UnsupportedOperationException; 047 String getCpuPart() throws IOException, InterruptedException, UnsupportedOperationException; 048 String getCpuRevision() throws IOException, InterruptedException, UnsupportedOperationException; 049 String getHardware() throws IOException, InterruptedException, UnsupportedOperationException; 050 String getRevision() throws IOException, InterruptedException, UnsupportedOperationException; 051 String getSerial() throws IOException, InterruptedException, UnsupportedOperationException; 052 String getOsName() throws UnsupportedOperationException; 053 String getOsVersion() throws UnsupportedOperationException; 054 String getOsArch() throws UnsupportedOperationException; 055 String getOsFirmwareBuild() throws IOException, InterruptedException, UnsupportedOperationException; 056 String getOsFirmwareDate() throws IOException, InterruptedException, ParseException, UnsupportedOperationException; 057 String getJavaVendor() throws UnsupportedOperationException; 058 String getJavaVendorUrl() throws UnsupportedOperationException; 059 String getJavaVersion() throws UnsupportedOperationException; 060 String getJavaVirtualMachine()throws UnsupportedOperationException; 061 String getJavaRuntime() throws UnsupportedOperationException; 062 boolean isHardFloatAbi() throws UnsupportedOperationException; 063 long getMemoryTotal() throws IOException, InterruptedException, UnsupportedOperationException; 064 long getMemoryUsed() throws IOException, InterruptedException, UnsupportedOperationException; 065 long getMemoryFree() throws IOException, InterruptedException, UnsupportedOperationException; 066 long getMemoryShared() throws IOException, InterruptedException, UnsupportedOperationException; 067 long getMemoryBuffers() throws IOException, InterruptedException, UnsupportedOperationException; 068 long getMemoryCached() throws IOException, InterruptedException, UnsupportedOperationException; 069 SystemInfo.BoardType getBoardType() throws IOException, InterruptedException, UnsupportedOperationException; 070 float getCpuTemperature() throws IOException, InterruptedException, NumberFormatException, UnsupportedOperationException; 071 float getCpuVoltage() throws IOException, InterruptedException, NumberFormatException, UnsupportedOperationException; 072 float getMemoryVoltageSDRam_C() throws IOException, InterruptedException, NumberFormatException, UnsupportedOperationException; 073 float getMemoryVoltageSDRam_I() throws IOException, InterruptedException, NumberFormatException, UnsupportedOperationException; 074 float getMemoryVoltageSDRam_P() throws IOException, InterruptedException, NumberFormatException, UnsupportedOperationException; 075 boolean getCodecH264Enabled() throws IOException, InterruptedException, UnsupportedOperationException; 076 boolean getCodecMPG2Enabled() throws IOException, InterruptedException, UnsupportedOperationException; 077 boolean getCodecWVC1Enabled() throws IOException, InterruptedException, UnsupportedOperationException; 078 long getClockFrequencyArm() throws IOException, InterruptedException, UnsupportedOperationException; 079 long getClockFrequencyCore() throws IOException, InterruptedException, UnsupportedOperationException; 080 long getClockFrequencyH264() throws IOException, InterruptedException, UnsupportedOperationException; 081 long getClockFrequencyISP() throws IOException, InterruptedException, UnsupportedOperationException; 082 long getClockFrequencyV3D() throws IOException, InterruptedException, UnsupportedOperationException; 083 long getClockFrequencyUART() throws IOException, InterruptedException, UnsupportedOperationException; 084 long getClockFrequencyPWM() throws IOException, InterruptedException, UnsupportedOperationException; 085 long getClockFrequencyEMMC() throws IOException, InterruptedException, UnsupportedOperationException; 086 long getClockFrequencyPixel() throws IOException, InterruptedException, UnsupportedOperationException; 087 long getClockFrequencyVEC() throws IOException, InterruptedException, UnsupportedOperationException; 088 long getClockFrequencyHDMI() throws IOException, InterruptedException, UnsupportedOperationException; 089 long getClockFrequencyDPI() throws IOException, InterruptedException, UnsupportedOperationException; 090}