Class CallContext

java.lang.Object
com.kenai.jffi.CallContext

public final class CallContext extends Object
Native function call context This class holds all the information that JFFI needs to correctly call a native function, or to implement a callback from native code to java.
  • Field Details

    • contextAddress

      final long contextAddress
      The native address of the context
    • parameterCount

      private final int parameterCount
      The number of parameters this function takes
    • rawParameterSize

      private final int rawParameterSize
      The size of buffer required when packing parameters
    • returnType

      final Type returnType
      The return type of this function
    • parameterTypes

      final Type[] parameterTypes
      The parameter types of this function
    • parameterTypeHandles

      final long[] parameterTypeHandles
    • fixedParamCount

      final int fixedParamCount
    • flags

      final int flags
    • disposed

      volatile int disposed
    • UPDATER

    • foreign

      private final Foreign foreign
      A handle to the foreign interface to keep it alive as long as this object is alive
  • Constructor Details

    • CallContext

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

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

      public CallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
    • CallContext

      CallContext(Type returnType, int fixedParamCount, Type[] parameterTypes, CallingConvention convention, boolean saveErrno, boolean faultProtect)
      Creates a new instance of Function.
      Parameters:
      returnType - The return type of the native function.
      fixedParamCount - The number of parameters that are fixed, for varargs calls
      parameterTypes - The parameter types the function accepts.
      convention - The calling convention of the function.
      saveErrno - Whether the errno should be saved or not
  • Method Details

    • getCallContext

      public static CallContext getCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
      Returns a CallContext instance. This may return a previously cached instance that matches the signature requested, and should be used in preference to instantiating new instances.
      Parameters:
      returnType - The return type of the native function.
      parameterTypes - The parameter types the function accepts.
      convention - The calling convention of the function.
      saveErrno - Indicates that the errno should be saved
      Returns:
      An instance of CallContext
    • getCallContext

      public static CallContext getCallContext(Type returnType, int fixedParamCount, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
    • getCallContext

      public static CallContext getCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno, boolean faultProtect)
    • 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.
    • getAddress

      final long getAddress()
      Gets the address of the function context.
      Returns:
      The address of the native function context struct.
    • 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.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • dispose

      @Deprecated public final void dispose()
      Deprecated.
    • finalize

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