Class Function

java.lang.Object
com.kenai.jffi.Function

public final class Function extends Object
Native function invocation context This class holds all the information that JFFI needs to correctly call a native function.
  • Field Details

    • callContext

      private final CallContext callContext
    • functionAddress

      final long functionAddress
      The address of the function
    • contextAddress

      final long contextAddress
  • Constructor Details

    • Function

      public Function(long address, Type returnType, Type... paramTypes)
      Creates a new instance of Function with default calling convention.
      Parameters:
      address - The native address of the function to invoke.
      returnType - The return type of the native function.
      paramTypes - The parameter types the function accepts.
    • Function

      public Function(long address, CallContext callContext)
      Creates a new instance of Function with default calling convention.
      Parameters:
      address - The native address of the function to invoke.
    • Function

      public Function(long address, Type returnType, Type[] paramTypes, CallingConvention convention)
      Creates a new instance of Function. Function instances created with this constructor will save the C errno contents after each call.
      Parameters:
      address - The native address of the function to invoke.
      returnType - The return type of the native function.
      paramTypes - The parameter types the function accepts.
      convention - The calling convention of the function.
    • Function

      public Function(long address, Type returnType, Type[] paramTypes, CallingConvention convention, boolean saveErrno)
      Creates a new instance of Function.
      Parameters:
      address - The native address of the function to invoke.
      returnType - The return type of the native function.
      paramTypes - The parameter types the function accepts.
      convention - The calling convention of the function.
      saveErrno - Whether the errno should be saved or not
    • Function

      public Function(long address, Type returnType, int fixedParamCount, Type[] paramTypes, CallingConvention convention, boolean saveErrno)
      Creates a new instance of Function.
      Parameters:
      address - The native address of the function to invoke.
      returnType - The return type of the native function.
      fixedParamCount - The number of fixed params for a variadic call.
      paramTypes - The parameter types the function accepts.
      convention - The calling convention of the function.
      saveErrno - Whether the errno should be saved or not
  • Method Details

    • getParameterCount

      public final int getParameterCount()
      Gets the number of parameters the native function accepts.
      Returns:
      The number of parameters the native function accepts.
    • getRawParameterSize

      public final int getRawParameterSize()
      Gets the number of bytes required to pack all the parameters this function accepts, into a region of memory.
      Returns:
      The number of bytes required to store all paraameters of this function.
    • getCallContext

      public final CallContext getCallContext()
    • getContextAddress

      final long getContextAddress()
      Gets the address of the function context.
      Returns:
      The address of the native function context struct.
    • getFunctionAddress

      public final long getFunctionAddress()
      Gets the address of the function.
      Returns:
      The address of the native function.
    • getReturnType

      public final Type getReturnType()
      Gets the native return type of this function.
      Returns:
      The native return type of this function.
    • getParameterType

      public final Type getParameterType(int index)
      Gets the type of a parameter.
      Parameters:
      index - The index of the parameter in the function signature
      Returns:
      The Type of the parameter.
    • dispose

      @Deprecated public final void dispose()
      Deprecated.