com.kenai.jffi
Class Invoker

java.lang.Object
  extended by com.kenai.jffi.Invoker

public abstract class Invoker
extends java.lang.Object

Provides native function invocation facilities.


Method Summary
static Invoker getInstance()
          Gets the Invoker singleton.
 void invoke(Function function, long returnBuffer, long[] parameters)
          Invokes a function, with the parameters loaded into native memory buffers, and the function result is stored in a native memory buffer.
abstract  long invokeAddress(Function function, HeapInvocationBuffer buffer)
          Invokes a function and returns a native memory address.
 double invokeDouble(Function function, HeapInvocationBuffer buffer)
          Invokes a function and returns a 64 bit floating point value.
 float invokeFloat(Function function, HeapInvocationBuffer buffer)
          Invokes a function and returns a 32 bit floating point value.
 float invokeIIIrF(Function function, int arg1, int arg2, int arg3)
          Invokes a function with three integer arguments, and returns a 32 bit float.
 int invokeIIIrI(Function function, int arg1, int arg2, int arg3)
          Invokes a function with three integer arguments, and returns a 32 bit integer.
 float invokeIIrF(Function function, int arg1, int arg2)
          Invokes a function with two integer arguments, and returns a 32 bit float.
 int invokeIIrI(Function function, int arg1, int arg2)
          Invokes a function with two integer arguments, and returns a 32 bit integer.
 int invokeInt(Function function, HeapInvocationBuffer buffer)
          Invokes a function and returns a 32 bit integer value.
 float invokeIrF(Function function, int arg1)
          Invokes a function with one integer argument, and returns a 32 bit float.
 int invokeIrI(Function function, int arg1)
          Invokes a function with one integer argument, and returns a 32 bit integer.
 long invokeLLLrL(Function function, long arg1, long arg2, long arg3)
          Invokes a function with three 64 bit integer arguments, and returns a 64 bit integer.
 long invokeLLrL(Function function, long arg1, long arg2)
          Invokes a function with two 64 bit integer arguments, and returns a 64 bit integer.
 long invokeLong(Function function, HeapInvocationBuffer buffer)
          Invokes a function and returns a 64 bit integer value.
 long invokeLrL(Function function, long arg1)
          Invokes a function with one 64 bit integer argument, and returns a 64 bit integer.
 int invokeNoErrnoIIIrI(Function function, int arg1, int arg2, int arg3)
          Invokes a function with three integer arguments, and returns a 32 bit integer.
 int invokeNoErrnoIIrI(Function function, int arg1, int arg2)
          Invokes a function with two integer arguments, and returns a 32 bit integer.
 int invokeNoErrnoIrI(Function function, int arg1)
          Invokes a function with one integer argument, and returns a 32 bit integer.
 int invokeNoErrnoVrI(Function function)
          Invokes a function with no arguments, and returns a 32 bit integer.
 java.lang.Object invokeObject(Function function, HeapInvocationBuffer buffer)
           
 byte[] invokeStruct(Function function, HeapInvocationBuffer buffer)
          Invokes a function that returns a C struct by value.
 void invokeStruct(Function function, HeapInvocationBuffer buffer, byte[] returnBuffer, int offset)
          Invokes a function that returns a C struct by value.
 float invokeVrF(Function function)
          Invokes a function with no arguments, and returns a 32 bit float.
 int invokeVrI(Function function)
          Invokes a function with no arguments, and returns a 32 bit integer.
 long invokeVrL(Function function)
          Invokes a function with no arguments, and returns a 64 bit integer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static final Invoker getInstance()
Gets the Invoker singleton.

Returns:
An instance of Invoker.

invokeVrI

public final int invokeVrI(Function function)
Invokes a function with no arguments, and returns a 32 bit integer.

Parameters:
function - The Function to invoke.
Returns:
A 32 bit integer value.

invokeVrF

public final float invokeVrF(Function function)
Invokes a function with no arguments, and returns a 32 bit float.

Parameters:
function - The Function to invoke.
Returns:
A 32 bit float value.

invokeNoErrnoVrI

public final int invokeNoErrnoVrI(Function function)
Invokes a function with no arguments, and returns a 32 bit integer. This method does not save the errno value.

Parameters:
function - The Function to invoke.
Returns:
A 32 bit integer value.

invokeIrI

public final int invokeIrI(Function function,
                           int arg1)
Invokes a function with one integer argument, and returns a 32 bit integer.

Parameters:
function - The Function to invoke.
arg1 - A 32 bit integer argument.
Returns:
A 32 bit integer value.

invokeNoErrnoIrI

public final int invokeNoErrnoIrI(Function function,
                                  int arg1)
Invokes a function with one integer argument, and returns a 32 bit integer. This method does not save the errno value.

Parameters:
function - The Function to invoke.
arg1 - A 32 bit integer argument.
Returns:
A 32 bit integer value.

invokeIrF

public final float invokeIrF(Function function,
                             int arg1)
Invokes a function with one integer argument, and returns a 32 bit float.

Parameters:
function - The Function to invoke.
arg1 - A 32 bit integer argument.
Returns:
A 32 bit float value.

invokeIIrI

public final int invokeIIrI(Function function,
                            int arg1,
                            int arg2)
Invokes a function with two integer arguments, and returns a 32 bit integer.

Parameters:
function - The Function to invoke.
arg1 - The first 32 bit integer argument.
arg2 - The second 32 bit integer argument.
Returns:
A 32 bit integer value.

invokeNoErrnoIIrI

public final int invokeNoErrnoIIrI(Function function,
                                   int arg1,
                                   int arg2)
Invokes a function with two integer arguments, and returns a 32 bit integer. This method does not save the errno value.

Parameters:
function - The Function to invoke.
arg1 - The first 32 bit integer argument.
arg2 - The second 32 bit integer argument.
Returns:
A 32 bit integer value.

invokeIIrF

public final float invokeIIrF(Function function,
                              int arg1,
                              int arg2)
Invokes a function with two integer arguments, and returns a 32 bit float.

Parameters:
function - The Function to invoke.
arg1 - The first 32 bit integer argument.
arg2 - The second 32 bit integer argument.
Returns:
A 32 bit float value.

invokeIIIrI

public final int invokeIIIrI(Function function,
                             int arg1,
                             int arg2,
                             int arg3)
Invokes a function with three integer arguments, and returns a 32 bit integer.

Parameters:
function - The Function to invoke.
arg1 - The first 32 bit integer argument.
arg2 - The second 32 bit integer argument.
arg3 - The third 32 bit integer argument.
Returns:
A 32 bit integer value.

invokeNoErrnoIIIrI

public final int invokeNoErrnoIIIrI(Function function,
                                    int arg1,
                                    int arg2,
                                    int arg3)
Invokes a function with three integer arguments, and returns a 32 bit integer. This method does not save the errno value.

Parameters:
function - The Function to invoke.
arg1 - The first 32 bit integer argument.
arg2 - The second 32 bit integer argument.
arg3 - The third 32 bit integer argument.
Returns:
A 32 bit integer value.

invokeIIIrF

public final float invokeIIIrF(Function function,
                               int arg1,
                               int arg2,
                               int arg3)
Invokes a function with three integer arguments, and returns a 32 bit float.

Parameters:
function - The Function to invoke.
arg1 - The first 32 bit integer argument.
arg2 - The second 32 bit integer argument.
arg3 - The third 32 bit integer argument.
Returns:
A 32 bit float value.

invokeVrL

public final long invokeVrL(Function function)
Invokes a function with no arguments, and returns a 64 bit integer.

Parameters:
function - The Function to invoke.
Returns:
A 64 bit integer value.

invokeLrL

public final long invokeLrL(Function function,
                            long arg1)
Invokes a function with one 64 bit integer argument, and returns a 64 bit integer.

Parameters:
function - The Function to invoke.
arg1 - The 64 bit integer argument.
Returns:
A 64 bit integer value.

invokeLLrL

public final long invokeLLrL(Function function,
                             long arg1,
                             long arg2)
Invokes a function with two 64 bit integer arguments, and returns a 64 bit integer.

Parameters:
function - The Function to invoke.
arg1 - The first 64 bit integer argument.
arg2 - The second 64 bit integer argument.
Returns:
A 64 bit integer value.

invokeLLLrL

public final long invokeLLLrL(Function function,
                              long arg1,
                              long arg2,
                              long arg3)
Invokes a function with three 64 bit integer arguments, and returns a 64 bit integer.

Parameters:
function - The Function to invoke.
arg1 - The first 64 bit integer argument.
arg2 - The second 64 bit integer argument.
arg3 - The third 64 bit integer argument.
Returns:
A 64 bit integer value.

invokeAddress

public abstract long invokeAddress(Function function,
                                   HeapInvocationBuffer buffer)
Invokes a function and returns a native memory address.

Parameters:
function - The Function to invoke.
buffer - A buffer containing the arguments to the function.
Returns:
A native memory address.

invokeInt

public final int invokeInt(Function function,
                           HeapInvocationBuffer buffer)
Invokes a function and returns a 32 bit integer value.

Parameters:
function - The Function to invoke.
buffer - A buffer containing the arguments to the function.
Returns:
A native memory address.

invokeLong

public final long invokeLong(Function function,
                             HeapInvocationBuffer buffer)
Invokes a function and returns a 64 bit integer value.

Parameters:
function - The Function to invoke.
buffer - A buffer containing the arguments to the function.
Returns:
A native memory address.

invokeFloat

public final float invokeFloat(Function function,
                               HeapInvocationBuffer buffer)
Invokes a function and returns a 32 bit floating point value.

Parameters:
function - The Function to invoke.
buffer - A buffer containing the arguments to the function.
Returns:
A native memory address.

invokeDouble

public final double invokeDouble(Function function,
                                 HeapInvocationBuffer buffer)
Invokes a function and returns a 64 bit floating point value.

Parameters:
function - The Function to invoke.
buffer - A buffer containing the arguments to the function.
Returns:
A native memory address.

invokeStruct

public final byte[] invokeStruct(Function function,
                                 HeapInvocationBuffer buffer)
Invokes a function that returns a C struct by value.

Parameters:
function - The Function to invoke.
buffer - The parameter buffer.
Returns:
A byte array with the return value encoded in native byte order.

invokeStruct

public final void invokeStruct(Function function,
                               HeapInvocationBuffer buffer,
                               byte[] returnBuffer,
                               int offset)
Invokes a function that returns a C struct by value.

Parameters:
function - The Function to invoke.
buffer - The parameter buffer.
returnBuffer - The output buffer to place the return value in.
offset - The offset within returnBuffer to place the return value.

invokeObject

public final java.lang.Object invokeObject(Function function,
                                           HeapInvocationBuffer buffer)

invoke

public final void invoke(Function function,
                         long returnBuffer,
                         long[] parameters)
Invokes a function, with the parameters loaded into native memory buffers, and the function result is stored in a native memory buffer.

Parameters:
function - The Function to invoke.
returnBuffer - The address of the native buffer to place the result of the function call in.
parameters - An array of addresses of the function parameters.