Class AprLibrary

java.lang.Object
org.apache.sshd.agent.unix.AprLibrary

public final class AprLibrary extends Object

Internal singleton used for initializing correctly the APR native library and the associated root memory pool.

It'll finalize nicely the native resources (libraries and memory pools).

Each memory pool used in the APR transport module needs to be children of the root pool getRootPool().
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static AprLibrary
     
    private final long
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    APR library singleton constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    private static void
    chmodOwner(String authSocket, boolean execute)
     
    (package private) static String
     
    protected void
     
    static AprLibrary
    get the shared instance of APR library, if none, initialize one
    (package private) long
    get the package wide root pool, the mother of all the pool created in APR transport module.
    private static void
    initialize the APR Library by loading the associated native libraries and creating the associated singleton
    static boolean
    is the APR library was initialized.
    (package private) static void
    secureLocalSocket(String authSocket, long handle)
     

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • library

      private static AprLibrary library
    • pool

      private final long pool
  • Constructor Details

    • AprLibrary

      private AprLibrary()
      APR library singleton constructor. Called only when accessing the singleton the first time. It is initializing an APR memory pool for the whole package (a.k.a mother or root pool).
      Throws:
      RuntimeException - if failed to load the library. Note: callers should inspect the cause of the exception in case an Error was thrown (e.g., UnsatisfiedLinkError).
  • Method Details

    • getInstance

      public static AprLibrary getInstance()
      get the shared instance of APR library, if none, initialize one
      Returns:
      the current APR library singleton
    • initialize

      private static void initialize()
      initialize the APR Library by loading the associated native libraries and creating the associated singleton
    • isInitialized

      public static boolean isInitialized()
      is the APR library was initialized.
      Returns:
      true if the Library is initialized, false otherwise
    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • getRootPool

      long getRootPool()
      get the package wide root pool, the mother of all the pool created in APR transport module.
      Returns:
      number identifying the root pool
    • createLocalSocketAddress

      static String createLocalSocketAddress() throws IOException
      Throws:
      IOException
    • secureLocalSocket

      static void secureLocalSocket(String authSocket, long handle) throws IOException
      Throws:
      IOException
    • chmodOwner

      private static void chmodOwner(String authSocket, boolean execute) throws IOException
      Throws:
      IOException