Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *  Licensed to the Apache Software Foundation (ASF) under one or more
   *  contributor license agreements.  See the NOTICE file distributed with
   *  this work for additional information regarding copyright ownership.
   *  The ASF licenses this file to You under the Apache License, Version 2.0
   *  (the "License"); you may not use this file except in compliance with
   *  the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
  *
  *  Unless required by applicable law or agreed to in writing, software
  *  distributed under the License is distributed on an "AS IS" BASIS,
  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
 
 package org.apache.tomcat.jni;
 
 import static org.jboss.web.CoyoteMessages.MESSAGES;

Library

Author(s):
Mladen Turk
Version:
$Revision: 1893 $, $Date: 2011-12-15 13:19:51 +0100 (Thu, 15 Dec 2011) $
 
 
 public final class Library {
 
     /* Default library names */
     private static String [] NAMES = {"tcnative-1""libtcnative-1"};
     /*
      * A handle to the unique Library singleton instance.
      */
     static private Library _instance = null;
 
     private Library()
         throws Exception
     {
         boolean loaded = false;
         String err = "";
         try {
             LibraryLoader.load(System.getProperty("catalina.home"));
             loaded = true;
         }
         catch (Throwable e) {
             err +=  e.getMessage();
         }
         if (!loaded) {
             for (int i = 0; i < .i++) {
                 try {
                     System.loadLibrary([i]);
                     loaded = true;
                 }
                 catch (Throwable e) {
                     if ( i > 0)
                         err += ", ";
 
                     String name = System.mapLibraryName([i]);
                     String path = System.getProperty("java.library.path");
                     String sep = System.getProperty("path.separator");
                     String [] paths = path.split(sep);
                     for (int j=0; j<paths.lengthj++) {
                         java.io.File fd = new java.io.File(paths[j] + System.getProperty("file.separator") + name);
                         if (fd.exists()) {
                             err += .aprError() + paths[j] + System.getProperty("file.separator") + name +")";
                         }
                     }
                     err +=  e.getMessage();
                 }
                 if (loaded)
                     break;
             }
         }
         if (!loaded) {
             err += "(";
             err += System.getProperty("java.library.path");
             err += ")";
             throw new UnsatisfiedLinkError(err);
         }
     }
 
     private Library(String libraryName)
     {
         System.loadLibrary(libraryName);
     }
 
     /* create global TCN's APR pool
      * This has to be the first call to TCN library.
      */
     private static native boolean initialize();
     /* destroy global TCN's APR pool
      * This has to be the last call to TCN library.
      */
     public static native void terminate();
     /* Internal function for loading APR Features */
     private static native boolean has(int what);
     /* Internal function for loading APR Features */
     private static native int version(int what);
    /* Internal function for loading APR sizes */
    private static native int size(int what);
    /* TCN_MAJOR_VERSION */
    public static int TCN_MAJOR_VERSION  = 0;
    /* TCN_MINOR_VERSION */
    public static int TCN_MINOR_VERSION  = 0;
    /* TCN_PATCH_VERSION */
    public static int TCN_PATCH_VERSION  = 0;
    /* TCN_IS_DEV_VERSION */
    public static int TCN_IS_DEV_VERSION = 0;
    /* APR_MAJOR_VERSION */
    public static int APR_MAJOR_VERSION  = 0;
    /* APR_MINOR_VERSION */
    public static int APR_MINOR_VERSION  = 0;
    /* APR_PATCH_VERSION */
    public static int APR_PATCH_VERSION  = 0;
    /* APR_IS_DEV_VERSION */
    public static int APR_IS_DEV_VERSION = 0;
    /* TCN_VERSION_STRING */
    public static native String versionString();
    /* APR_VERSION_STRING */
    public static native String aprVersionString();
    /*  APR Feature Macros */
    public static boolean APR_HAVE_IPV6           = false;
    public static boolean APR_HAS_SHARED_MEMORY   = false;
    public static boolean APR_HAS_THREADS         = false;
    public static boolean APR_HAS_SENDFILE        = false;
    public static boolean APR_HAS_MMAP            = false;
    public static boolean APR_HAS_FORK            = false;
    public static boolean APR_HAS_RANDOM          = false;
    public static boolean APR_HAS_OTHER_CHILD     = false;
    public static boolean APR_HAS_DSO             = false;
    public static boolean APR_HAS_SO_ACCEPTFILTER = false;
    public static boolean APR_HAS_UNICODE_FS      = false;
    public static boolean APR_HAS_PROC_INVOKED    = false;
    public static boolean APR_HAS_USER            = false;
    public static boolean APR_HAS_LARGE_FILES     = false;
    public static boolean APR_HAS_XTHREAD_FILES   = false;
    public static boolean APR_HAS_OS_UUID         = false;
    /* Are we big endian? */
    public static boolean APR_IS_BIGENDIAN        = false;
    /* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible
     * to poll on files/pipes.
     */
    public static boolean APR_FILES_AS_SOCKETS    = false;
    /* This macro indicates whether or not EBCDIC is the native character set.
     */
    public static boolean APR_CHARSET_EBCDIC      = false;
    /* Is the TCP_NODELAY socket option inherited from listening sockets?
     */
    public static boolean APR_TCP_NODELAY_INHERITED = false;
    /* Is the O_NONBLOCK flag inherited from listening sockets?
     */
    public static boolean APR_O_NONBLOCK_INHERITED  = false;
    public static int APR_SIZEOF_VOIDP;
    public static int APR_PATH_MAX;
    public static int APRMAXHOSTLEN;
    public static int APR_MAX_IOVEC_SIZE;
    public static int APR_MAX_SECS_TO_LINGER;
    public static int APR_MMAP_THRESHOLD;
    public static int APR_MMAP_LIMIT;
    /* return global TCN's APR pool */
    public static native long globalPool();

    
Setup any APR internal data structures. This MUST be the first function called for any APR library.

Parameters:
libraryName the name of the library to load
    static public boolean initialize(String libraryName)
        throws Exception
    {
        if ( == null) {
            if (libraryName == null)
                 = new Library();
            else
                 = new Library(libraryName);
              = version(0x01);
              = version(0x02);
              = version(0x03);
             = version(0x04);
              = version(0x11);
              = version(0x12);
              = version(0x13);
             = version(0x14);
                    = size(1);
                        = size(2);
                       = size(3);
                  = size(4);
              = size(5);
                  = size(6);
                      = size(7);
                       = has(0);
               = has(1);
                     = has(2);
                    = has(3);
                        = has(4);
                        = has(5);
                      = has(6);
                 = has(7);
                         = has(8);
             = has(9);
                  = has(10);
                = has(11);
                        = has(12);
                 = has(13);
               = has(14);
                     = has(15);
                    = has(16);
                = has(17);
                  = has(18);
             = has(19);
              = has(20);
            if ( < 1) {
                throw .unsupportedAprVersion(aprVersionString());
            }
            if (!) {
                throw .missingAprThreadsSupport();
            }
        }
        return initialize();
    }
New to GrepCode? Check out our FAQ X