org.apache.cassandra.utils

## Class NativeLibraryDarwin

- java.lang.Object
- - org.apache.cassandra.utils.NativeLibraryDarwin

-     public class NativeLibraryDarwin
      extends java.lang.Object

  A `NativeLibraryWrapper` implementation for Darwin/Mac.

  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 Summary

    Constructors
    Constructor and Description
    `NativeLibraryDarwin()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `callClose(int fd)`
    `int` | `callFcntl(int fd, int command, long flags)`
    `int` | `callFsync(int fd)`
    `long` | `callGetpid()`
    `int` | `callMlockall(int flags)`
    `int` | `callMunlockall()`
    `int` | `callOpen(java.lang.String path, int flags)`
    `int` | `callPosixFadvise(int fd, long offset, int len, int flag)`
    `com.sun.jna.Pointer` | `callStrerror(int errnum)`
    `boolean` | `isAvailable()` Checks if the library has been successfully linked.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### NativeLibraryDarwin

          public NativeLibraryDarwin()

  - ### Method Detail

    - #### callMlockall

          public int callMlockall(int flags)
                           throws java.lang.UnsatisfiedLinkError,
                                  java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callMunlockall

          public int callMunlockall()
                             throws java.lang.UnsatisfiedLinkError,
                                    java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callFcntl

          public int callFcntl(int fd,
                               int command,
                               long flags)
                        throws java.lang.UnsatisfiedLinkError,
                               java.lang.RuntimeException

      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

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callOpen

          public int callOpen(java.lang.String path,
                              int flags)
                       throws java.lang.UnsatisfiedLinkError,
                              java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callFsync

          public int callFsync(int fd)
                        throws java.lang.UnsatisfiedLinkError,
                               java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callClose

          public int callClose(int fd)
                        throws java.lang.UnsatisfiedLinkError,
                               java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callStrerror

          public com.sun.jna.Pointer callStrerror(int errnum)
                                           throws java.lang.UnsatisfiedLinkError,
                                                  java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### callGetpid

          public long callGetpid()
                          throws java.lang.UnsatisfiedLinkError,
                                 java.lang.RuntimeException

      Throws:
        `java.lang.UnsatisfiedLinkError`
        `java.lang.RuntimeException`

    - #### isAvailable

          public boolean isAvailable()

      Checks if the library has been successfully linked.
      Returns:
        `true` if the library has been successfully linked, `false` otherwise.

Copyright © 2018 The Apache Software Foundation