Package com.kenai.jffi
Class CallContext
- java.lang.Object
-
- com.kenai.jffi.CallContext
-
public final class CallContext extends java.lang.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 Summary
Fields Modifier and Type Field Description (package private) long
contextAddress
The native address of the context(package private) int
disposed
(package private) int
fixedParamCount
(package private) int
flags
private Foreign
foreign
A handle to the foreign interface to keep it alive as long as this object is aliveprivate int
parameterCount
The number of parameters this function takes(package private) long[]
parameterTypeHandles
(package private) Type[]
parameterTypes
The parameter types of this functionprivate int
rawParameterSize
The size of buffer required when packing parameters(package private) Type
returnType
The 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 ofFunction
with 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 void
dispose()
Deprecated.boolean
equals(java.lang.Object o)
protected void
finalize()
(package private) long
getAddress()
Gets the address of the function context.static CallContext
getCallContext(Type returnType, int fixedParamCount, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
static CallContext
getCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno)
Returns aCallContext
instance.static CallContext
getCallContext(Type returnType, Type[] parameterTypes, CallingConvention convention, boolean saveErrno, boolean faultProtect)
int
getParameterCount()
Gets the number of parameters the native function accepts.Type
getParameterType(int index)
Gets the type of a parameter.int
getRawParameterSize()
Gets the number of bytes required to pack all the parameters this function accepts, into a region of memory.Type
getReturnType()
Gets the native return type of this function.int
hashCode()
-
-
-
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 ofFunction
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 ofFunction
.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 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 aCallContext
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(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
dispose
@Deprecated public final void dispose()
Deprecated.
-
finalize
protected void finalize() throws java.lang.Throwable
- Overrides:
finalize
in classjava.lang.Object
- Throws:
java.lang.Throwable
-
-