Package com.kenai.jffi
Class CallContext
- java.lang.Object
-
- com.kenai.jffi.CallContext
-
public final class CallContext extends java.lang.ObjectNative 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 Summary
Fields Modifier and Type Field Description (package private) longcontextAddressThe native address of the context(package private) intdisposed(package private) intfixedParamCount(package private) intflagsprivate ForeignforeignA handle to the foreign interface to keep it alive as long as this object is aliveprivate intparameterCountThe number of parameters this function takes(package private) long[]parameterTypeHandles(package private) Type[]parameterTypesThe parameter types of this functionprivate intrawParameterSizeThe size of buffer required when packing parameters(package private) TypereturnTypeThe return type of this function(package private) java.util.concurrent.atomic.AtomicIntegerFieldUpdater<CallContext>UPDATER
-
Constructor Summary
Constructors Constructor Description CallContext(Type returnType, int fixedParamCount, Type[] parameterTypes, CallingConvention convention, boolean saveErrno, boolean faultProtect)Creates a new instance ofFunction.CallContext(Type returnType, Type... parameterTypes)Creates a new instance ofFunctionwith default calling convention.CallContext(Type returnType, Type[] parameterTypes, CallingConvention convention)Creates a new instance ofFunction.CallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voiddispose()Deprecated.booleanequals(java.lang.Object o)protected voidfinalize()(package private) longgetAddress()Gets the address of the function context.static CallContextgetCallContext(Type returnType, int fixedParamCount, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)static CallContextgetCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)Returns aCallContextinstance.static CallContextgetCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno, boolean faultProtect)intgetParameterCount()Gets the number of parameters the native function accepts.TypegetParameterType(int index)Gets the type of a parameter.intgetRawParameterSize()Gets the number of bytes required to pack all the parameters this function accepts, into a region of memory.TypegetReturnType()Gets the native return type of this function.inthashCode()
-
-
-
Field Detail
-
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
final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<CallContext> UPDATER
-
foreign
private final Foreign foreign
A handle to the foreign interface to keep it alive as long as this object is alive
-
-
Constructor Detail
-
CallContext
public CallContext(Type returnType, Type... parameterTypes)
Creates a new instance ofFunctionwith 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 ofFunction.Functioninstances 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 ofFunction.- Parameters:
returnType- The return type of the native function.fixedParamCount- The number of parameters that are fixed, for varargs callsparameterTypes- The parameter types the function accepts.convention- The calling convention of the function.saveErrno- Whether the errno should be saved or not
-
-
Method Detail
-
getCallContext
public static CallContext getCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
Returns aCallContextinstance. 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
Typeof the parameter.
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
dispose
@Deprecated public final void dispose()
Deprecated.
-
finalize
protected void finalize() throws java.lang.Throwable- Overrides:
finalizein classjava.lang.Object- Throws:
java.lang.Throwable
-
-