Top Description Inners Fields Constructors Methods
jogamp.common.os

public abstract Class PlatformPropsImpl

extends Object
Class Inheritance
Known Direct Subclasses
com.jogamp.common.os.Platform
Imports
java.io.File, .IOException, .RandomAccessFile, java.nio.ByteBuffer, .IntBuffer, .ShortBuffer, java.security.AccessController, .PrivilegedAction, java.util.List, jogamp.common.Debug, jogamp.common.os.elf.ElfHeaderPart1, .ElfHeaderPart2, .SectionArmAttributes, com.jogamp.common.nio.Buffers, com.jogamp.common.os.AndroidVersion, .NativeLibrary, .Platform, .Platform.ABIType, .Platform.CPUFamily, .Platform.CPUType, .Platform.OSType, com.jogamp.common.util.VersionNumber

Abstract parent class of Platform initializing and holding platform information, which are initialized independent of other classes.

This class is not intended to be exposed in the public namespace and solely exist to solve initialization interdependencies.
Please use Platform to access the public fields!

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class

Field Summary

Modifier and TypeField and Description
public static final Platform.ABIType
public static final String
public static final String
public static final Platform.CPUType
pack-priv static final boolean
public static final boolean
JAVA_6

True only if being compatible w/ language level 6, e.g. JRE 1.6.

public static final String
public static final boolean
JAVA_SE

True if having java.nio.LongBuffer and java.nio.DoubleBuffer available.

public static final String
public static final String
public static final String
public static final VersionNumber
public static final int
public static final String
public static final boolean
public static final String
public static final String
public static final String
public static final String
public static final Platform.OSType
public static final String
public static final VersionNumber
public static final VersionNumber
Version16

Version 1.6.

public static final VersionNumber
Version17

Version 1.7.

public static final VersionNumber
Version18

Version 1.8.

public static final VersionNumber
Version19

Version 1.9.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
private static boolean
private static final boolean
contains(final String data, final String[] search)

private static File
findSysLib(final String libName)

private static final String
public static final String

Returns:

The os.and.arch value.
getOSAndArch
(final Platform.OSType osType, final Platform.CPUType cpuType, final Platform.ABIType abiType, final boolean littleEndian)

Returns the GlueGen common name for the given OSType, CPUType, ABIType and littleEndian.

private static final Platform.OSType
getOSTypeImpl(final String osLower, final boolean isAndroid)

private static final boolean
public static void
initSingleton()

kick off static initialization of platform property information

public static final boolean
isCompatible(final Platform.CPUType cpu1, final Platform.ABIType abi1, final Platform.CPUType cpu2, final Platform.ABIType abi2)

Returns true if the given CPUTypes and ABITypes are compatible.

private static final File
queryElfFile(final Platform.OSType osType)

Returns the ABIType of the current platform using given cpuType and osType as a hint.

private static final boolean
private static final ElfHeaderPart1
private static final ElfHeaderPart2
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ABI_TYPEback to summary
public static final Platform.ABIType ABI_TYPE
ARCHback to summary
public static final String ARCH
ARCH_lowerback to summary
public static final String ARCH_lower
CPU_ARCHback to summary
public static final Platform.CPUType CPU_ARCH
DEBUGback to summary
pack-priv static final boolean DEBUG
JAVA_6back to summary
public static final boolean JAVA_6

True only if being compatible w/ language level 6, e.g. JRE 1.6.

Implies isJavaSE().

Note

We claim Android is compatible.

JAVA_RUNTIME_NAMEback to summary
public static final String JAVA_RUNTIME_NAME
JAVA_SEback to summary
public static final boolean JAVA_SE

True if having java.nio.LongBuffer and java.nio.DoubleBuffer available.

JAVA_VENDORback to summary
public static final String JAVA_VENDOR
JAVA_VENDOR_URLback to summary
public static final String JAVA_VENDOR_URL
JAVA_VERSIONback to summary
public static final String JAVA_VERSION
JAVA_VERSION_NUMBERback to summary
public static final VersionNumber JAVA_VERSION_NUMBER
JAVA_VERSION_UPDATEback to summary
public static final int JAVA_VERSION_UPDATE
JAVA_VM_NAMEback to summary
public static final String JAVA_VM_NAME
LITTLE_ENDIANback to summary
public static final boolean LITTLE_ENDIAN
NEWLINEback to summary
public static final String NEWLINE
OSback to summary
public static final String OS
os_and_archback to summary
public static final String os_and_arch
OS_lowerback to summary
public static final String OS_lower
OS_TYPEback to summary
public static final Platform.OSType OS_TYPE
OS_VERSIONback to summary
public static final String OS_VERSION
OS_VERSION_NUMBERback to summary
public static final VersionNumber OS_VERSION_NUMBER
Version16back to summary
public static final VersionNumber Version16

Version 1.6. As a JVM version, it enables certain JVM 1.6 features.

Version17back to summary
public static final VersionNumber Version17

Version 1.7. As a JVM version, it enables certain JVM 1.7 features.

Version18back to summary
public static final VersionNumber Version18

Version 1.8. As a JVM version, it enables certain JVM 1.8 features.

Version19back to summary
public static final VersionNumber Version19

Version 1.9. As a JVM version, it enables certain JVM 1.9 features.

Constructor Detail

PlatformPropsImplback to summary
protected PlatformPropsImpl()

Method Detail

checkFileReadAccessback to summary
private static boolean checkFileReadAccess(final File file)
containsback to summary
private static final boolean contains(final String data, final String[] search)
Annotations
@SuppressWarnings:unused
findSysLibback to summary
private static File findSysLib(final String libName)
getJavaRuntimeNameImplback to summary
private static final String getJavaRuntimeNameImpl()
getOSAndArchback to summary
public static final String getOSAndArch(final Platform.OSType osType, final Platform.CPUType cpuType, final Platform.ABIType abiType, final boolean littleEndian)

Returns the GlueGen common name for the given OSType, CPUType, ABIType and littleEndian.

Consult 'gluegen/make/gluegen-cpptasks-base.xml' to complete/sync mapping!

An excerpt of supported os.and.arch strings:
  • android-armv6
  • android-aarch64
  • linux-armv6
  • linux-armv6hf
  • linux-i586
  • linux-ppc
  • linux-mips
  • linux-mipsel
  • linux-superh
  • linux-sparc
  • linux-aarch64
  • linux-amd64
  • linux-ppc64
  • linux-mips64
  • linux-ia64
  • linux-sparcv9
  • linux-risc2.0
  • freebsd-i586
  • freebsd-amd64
  • hpux-hppa
  • macosx-universal
  • solaris-sparc
  • solaris-sparcv9
  • solaris-amd64
  • solaris-i586
  • windows-amd64
  • windows-i586
Returns:String

The os.and.arch value.

getOSTypeImplback to summary
private static final Platform.OSType getOSTypeImpl(final String osLower, final boolean isAndroid) throws RuntimeException
initIsJavaSEback to summary
private static final boolean initIsJavaSE()
initSingletonback to summary
public static void initSingleton()

kick off static initialization of platform property information

isCompatibleback to summary
public static final boolean isCompatible(final Platform.CPUType cpu1, final Platform.ABIType abi1, final Platform.CPUType cpu2, final Platform.ABIType abi2)

Returns true if the given CPUTypes and ABITypes are compatible.

queryElfFileback to summary
private static final File queryElfFile(final Platform.OSType osType)

Returns the ABIType of the current platform using given cpuType and osType as a hint.

For Elf parsing one of the following binaries is used:

  • Linux: Current executable
  • Android: Found gluegen-rt library
  • Other: A found java/jvm native library.

Elf ARM Tags are read using ElfHeader, .. and SectionArmAttributes#abiVFPArgsAcceptsVFPVariant(byte).

queryIsLittleEndianImplback to summary
private static final boolean queryIsLittleEndianImpl()
readElfHeaderPart1back to summary
private static final ElfHeaderPart1 readElfHeaderPart1(final Platform.OSType osType, final RandomAccessFile in)
readElfHeaderPart2back to summary
private static final ElfHeaderPart2 readElfHeaderPart2(final ElfHeaderPart1 eh1, final RandomAccessFile in)
jogamp.common.os back to summary

public Class PlatformPropsImpl.OSXVersion

extends Object
Class Inheritance

Selected Platform.OSType#MACOS VersionNumbers.

Field Summary

Modifier and TypeField and Description
public static final VersionNumber
Lion

OSX Lion, i.e. 10.7.0

public static final VersionNumber
Mavericks

OSX Mavericks, i.e. 10.9.0

public static final VersionNumber
Tiger

OSX Tiger, i.e. 10.4.0

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

Lionback to summary
public static final VersionNumber Lion

OSX Lion, i.e. 10.7.0

Mavericksback to summary
public static final VersionNumber Mavericks

OSX Mavericks, i.e. 10.9.0

Tigerback to summary
public static final VersionNumber Tiger

OSX Tiger, i.e. 10.4.0

Constructor Detail

OSXVersionback to summary
public OSXVersion()