JNA API 3.0.3
com.sun.jna

Class Function



  • public class Function
    extends Pointer
    An abstraction for a native function pointer. An instance of Function represents a pointer to some native function. invoke(Class,Object[],Map) is the primary means to call the function.
    Author:
    Sheng Liang, originator, Todd Fast, suitability modifications
    See Also:
    Pointer
    • Field Detail

      • MAX_NARGS

        public static final int MAX_NARGS
        Maximum number of arguments supported by a JNA function call.
        See Also:
        Constant Field Values
      • C_CONVENTION

        public static final int C_CONVENTION
        Standard C calling convention.
        See Also:
        Constant Field Values
      • ALT_CONVENTION

        public static final int ALT_CONVENTION
        First alternate convention (currently used only for w32 stdcall).
        See Also:
        Constant Field Values
      • OPTION_INVOKING_METHOD

        static final java.lang.String OPTION_INVOKING_METHOD
        For internal JNA use.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Function

        Function(NativeLibrary library,
                java.lang.String functionName,
                int callingConvention)
        Create a new Function that is linked with a native function that follows the given calling convention.

        The allocated instance represents a pointer to the named native function from the supplied library, called with the given calling convention.

        Parameters:
        library - NativeLibrary in which to find the function
        functionName - Name of the native function to be linked with
        callingConvention - Calling convention used by the native function
        Throws:
        {@link - UnsatisfiedLinkError} if the given function name is not found within the library.
      • Function

        Function(Pointer functionAddress,
                int callingConvention)
        Create a new Function that is linked with a native function that follows the given calling convention.

        The allocated instance represents a pointer to the given function address, called with the given calling convention.

        Parameters:
        functionAddress - Address of the native function
        callingConvention - Calling convention used by the native function
    • Method Detail

      • getFunction

        public static Function getFunction(java.lang.String libraryName,
                           java.lang.String functionName)
        Obtain a Function representing a native function that follows the standard "C" calling convention.

        The allocated instance represents a pointer to the named native function from the named library, called with the standard "C" calling convention.

        Parameters:
        libraryName - Library in which to find the native function
        functionName - Name of the native function to be linked with
        Throws:
        {@link - UnsatisfiedLinkError} if the library is not found or the given function name is not found within the library.
      • getFunction

        public static Function getFunction(java.lang.String libraryName,
                           java.lang.String functionName,
                           int callConvention)
        Obtain a Function representing a native function that follows a given calling convention.

        The allocated instance represents a pointer to the named native function from the named library, called with the named calling convention.

        Parameters:
        libraryName - Library in which to find the function
        functionName - Name of the native function to be linked with
        callConvention - Call convention used by the native function
        Throws:
        {@link - UnsatisfiedLinkError} if the library is not found or the given function name is not found within the library.
      • getName

        public java.lang.String getName()
      • getCallingConvention

        public int getCallingConvention()
      • invoke

        public java.lang.Object invoke(java.lang.Class returnType,
                              java.lang.Object[] inArgs)
        Invoke the native function with the given arguments, returning the native result as an Object.
      • invoke

        public java.lang.Object invoke(java.lang.Class returnType,
                              java.lang.Object[] inArgs,
                              java.util.Map options)
        Invoke the native function with the given arguments, returning the native result as an Object.
      • invoke

        java.lang.Object invoke(java.lang.Object[] args,
                              java.lang.Class returnType)
        See Also:
        implementation
      • invoke

        public void invoke(java.lang.Object[] args)
        Call the native function being represented by this object
        Parameters:
        args - Arguments to pass to the native function
      • toString

        public java.lang.String toString()
        Provide a human-readable representation of this object.
        Overrides:
        toString in class Pointer
      • invokeString

        public java.lang.String invokeString(java.lang.Object[] args,
                                    boolean wide)
        Parameters:
        args - Arguments passed to native function
        wide - Whether the return value is of type wchar_t*; if false, the return value is of type char*.
      • equals

        public boolean equals(java.lang.Object o)
        Two function pointers are equal if they share the same peer address and calling convention.
        Overrides:
        equals in class Pointer
        Parameters:
        o - A Pointer instance
        Returns:
        True if the other object is a Pointer, and the C pointers being pointed to by these objects are also equal. Returns false otherwise.
      • concatenateVarArgs

        static java.lang.Object[] concatenateVarArgs(java.lang.Object[] inArgs)
        Concatenate varargs with normal args to obtain a simple argument array.
      • isVarArgs

        static boolean isVarArgs(java.lang.reflect.Method m)
        Varargs are only supported on 1.5+.
      • valueOf

        static java.lang.Boolean valueOf(boolean b)
        Implementation of Boolean.valueOf for older VMs.
JNA API 3.0.3

Copyright © 2007-2008 Timothy Wall. All Rights Reserved.