Package jnr.ffi

Class Platform

    • Field Detail

      • LOCALE

        private static final java.util.Locale LOCALE
      • addressSize

        private final int addressSize
      • longSize

        private final int longSize
      • libPattern

        protected final java.util.regex.Pattern libPattern
    • Constructor Detail

      • Platform

        public Platform​(Platform.OS os,
                        Platform.CPU cpu,
                        int addressSize,
                        int longSize,
                        java.lang.String libPattern)
    • Method Detail

      • determineOS

        private static Platform.OS determineOS()
        Determines the operating system jffi is running on
        Returns:
        An member of the OS enum.
      • determinePlatform

        private static Platform determinePlatform​(Platform.OS os)
        Determines the Platform that best describes the OS
        Parameters:
        os - The operating system.
        Returns:
        An instance of Platform
      • determinePlatform

        private static Platform determinePlatform()
      • calculateAddressSize

        private static int calculateAddressSize​(Platform.CPU cpu)
      • getNativePlatform

        public static Platform getNativePlatform()
        Gets the native Platform
        Returns:
        The current platform.
      • getPlatform

        @Deprecated
        public static Platform getPlatform()
        Deprecated.
      • getOS

        public final Platform.OS getOS()
        Gets the current Operating System.
        Returns:
        A OS value representing the current Operating System.
      • getCPU

        public final Platform.CPU getCPU()
        Gets the current processor architecture the JVM is running on.
        Returns:
        A CPU value representing the current processor architecture.
      • isBSD

        public final boolean isBSD()
      • isUnix

        public final boolean isUnix()
      • longSize

        public final int longSize()
        Deprecated.
        Use Runtime.longSize() instead.
        Gets the size of a C 'long' on the native platform.
        Returns:
        the size of a long in bits
      • addressSize

        public final int addressSize()
        Deprecated.
        Gets the size of a C address/pointer on the native platform.
        Returns:
        the size of a pointer in bits
      • is32Bit

        public final boolean is32Bit()
        Returns:
        true if this platform is 32 bit, else false Note: do not use this to determine long size, instead use Runtime.longSize()
      • is64Bit

        public final boolean is64Bit()
        Returns:
        true if this platform is 64 bit, else false Note: do not use this to determine long size, instead use Runtime.longSize()
      • isLittleEndian

        public final boolean isLittleEndian()
        Returns true if the current platform is little endian
        Returns:
        true if little endian, false otherwise or if cannot determine
      • isBigEndian

        public final boolean isBigEndian()
        Returns true if the current platform is big endian
        Returns:
        true if big endian, false otherwise or if cannot determine
      • getOSName

        public final java.lang.String getOSName()
        Returns:
        the String representing the OS name from the System property os.name or null if none was found This is not the same as getOS() which returns the Platform.OS. For example: Mac OS X is the Platform.OS.DARWIN Platform.OS but returns "Mac OS X" from this method
      • getName

        public java.lang.String getName()
        Gets the name of this Platform.
        Returns:
        The name of this platform.
      • getVersion

        public java.lang.String getVersion()
        Gets the version of this platform as specified by the system property "os.version"
        Returns:
        the String representing the version of this platform, or null if none could be found
      • getVersionNumbers

        private java.util.List<java.lang.String> getVersionNumbers()
        Returns:
        the list of version numbers found from getVersion() or an empty list if none were found
      • getVersionMajor

        public int getVersionMajor()
        Gets the number representing the major version of this platform This uses the first number from getVersion()
        Returns:
        the number representing the major version of this platform or -1 if none was found
      • getVersionMinor

        public int getVersionMinor()
        Gets the number representing the minor version of this platform This uses the second number from getVersion()
        Returns:
        the number representing the minor version of this platform or -1 if none was found
      • getStandardCLibraryName

        public java.lang.String getStandardCLibraryName()
        Returns the platform specific standard C library name
        Returns:
        The standard C library name
      • mapLibraryName

        public java.lang.String mapLibraryName​(java.lang.String libName)
        Maps from a generic library name (e.g. "c") to the platform specific library name.
        Parameters:
        libName - The library name to map
        Returns:
        The mapped library name.
      • locateLibrary

        public java.lang.String locateLibrary​(java.lang.String libName,
                                              java.util.List<java.lang.String> libraryPath)
        Searches through a list of directories for a native library.
        Parameters:
        libName - the base name (e.g. "c") of the library to locate
        libraryPath - the list of directories to search
        Returns:
        the path of the library
      • locateLibrary

        public java.lang.String locateLibrary​(java.lang.String libName,
                                              java.util.List<java.lang.String> libraryPaths,
                                              java.util.Map<LibraryOption,​java.lang.Object> options)
        Searches through a list of directories for a native library.
        Parameters:
        libName - the base name (e.g. "c") of the library to locate
        libraryPaths - the list of directories to search
        options - map of LibraryOptions to customize search behavior such as LibraryOption.PreferCustomPaths
        Returns:
        the path of the library
      • libraryLocations

        public java.util.List<java.lang.String> libraryLocations​(java.lang.String libName,
                                                                 java.util.List<java.lang.String> additionalPaths)
        Returns a list of absolute paths to the found locations of a library with the base name libName, if the returned list is empty then the library could not be found and will fail to be loaded as a result. Even if a library is found, this does not guarantee that it will successfully be loaded, it only guarantees that the reason for the failure was not that it was not found.
        Parameters:
        libName - the base name (e.g. "c") of the library to locate
        additionalPaths - additional paths to search, these take precedence over default paths, (as is the behavior in LibraryLoader) pass null to only search in the default paths
        Returns:
        the list of absolute paths where the library was found
      • startsWithIgnoreCase

        private static boolean startsWithIgnoreCase​(java.lang.String s1,
                                                    java.lang.String s2)
      • equalsIgnoreCase

        private static boolean equalsIgnoreCase​(java.lang.String s1,
                                                java.lang.String s2)