Class NativeLibraryLinux

  • All Implemented Interfaces:
    NativeLibraryWrapper

    public class NativeLibraryLinux
    extends java.lang.Object
    implements NativeLibraryWrapper
    A NativeLibraryWrapper implementation for Linux.

    When JNA is initialized, all methods that have the 'native' keyword will be attmpted to be linked against. As Java doesn't have the equivalent of a #ifdef, this means if a native method like posix_fadvise is defined in the class but not available on the target operating system (e.g. posix_fadvise is not availble on Darwin/Mac) this will cause the entire initial linking and initialization of JNA to fail. This means other native calls that are supported on that target operating system will be unavailable simply because of one native defined method not supported on the runtime operating system.

    See Also:
    NativeLibraryWrapper, NativeLibrary
    • Constructor Detail

      • NativeLibraryLinux

        public NativeLibraryLinux()
    • Method Detail

      • callMlockall

        public int callMlockall​(int flags)
                         throws java.lang.UnsatisfiedLinkError,
                                java.lang.RuntimeException
        Specified by:
        callMlockall in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callMunlockall

        public int callMunlockall()
                           throws java.lang.UnsatisfiedLinkError,
                                  java.lang.RuntimeException
        Specified by:
        callMunlockall in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callFcntl

        public int callFcntl​(int fd,
                             int command,
                             long flags)
                      throws java.lang.UnsatisfiedLinkError,
                             java.lang.RuntimeException
        Specified by:
        callFcntl in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callPosixFadvise

        public int callPosixFadvise​(int fd,
                                    long offset,
                                    int len,
                                    int flag)
                             throws java.lang.UnsatisfiedLinkError,
                                    java.lang.RuntimeException
        Specified by:
        callPosixFadvise in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callOpen

        public int callOpen​(java.lang.String path,
                            int flags)
                     throws java.lang.UnsatisfiedLinkError,
                            java.lang.RuntimeException
        Specified by:
        callOpen in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callFsync

        public int callFsync​(int fd)
                      throws java.lang.UnsatisfiedLinkError,
                             java.lang.RuntimeException
        Specified by:
        callFsync in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callClose

        public int callClose​(int fd)
                      throws java.lang.UnsatisfiedLinkError,
                             java.lang.RuntimeException
        Specified by:
        callClose in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callStrerror

        public com.sun.jna.Pointer callStrerror​(int errnum)
                                         throws java.lang.UnsatisfiedLinkError,
                                                java.lang.RuntimeException
        Specified by:
        callStrerror in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • callGetpid

        public long callGetpid()
                        throws java.lang.UnsatisfiedLinkError,
                               java.lang.RuntimeException
        Specified by:
        callGetpid in interface NativeLibraryWrapper
        Throws:
        java.lang.UnsatisfiedLinkError
        java.lang.RuntimeException
      • isAvailable

        public boolean isAvailable()
        Description copied from interface: NativeLibraryWrapper
        Checks if the library has been successfully linked.
        Specified by:
        isAvailable in interface NativeLibraryWrapper
        Returns:
        true if the library has been successfully linked, false otherwise.