Package com.kenai.jffi
Class HeapInvocationBuffer
- java.lang.Object
-
- com.kenai.jffi.InvocationBuffer
-
- com.kenai.jffi.HeapInvocationBuffer
-
public final class HeapInvocationBuffer extends InvocationBuffer
An implementation ofInvocationBuffer
that packs its parameters onto a java heap allocated buffer.
-
-
Constructor Summary
Constructors Constructor Description HeapInvocationBuffer(CallContext callContext)
Creates a new instance of HeapInvocationBuffer.HeapInvocationBuffer(CallContext context, int objectCount)
Creates a new instance of HeapInvocationBuffer.HeapInvocationBuffer(Function function)
Creates a new instance of HeapInvocationBuffer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
putAddress(long value)
Adds a native address parameter.void
putArray(byte[] array, int offset, int length, int flags)
Adds a java byte array as a pointer parameter.void
putArray(double[] array, int offset, int length, int flags)
Adds a java double array as a pointer parameter.void
putArray(float[] array, int offset, int length, int flags)
Adds a java float array as a pointer parameter.void
putArray(int[] array, int offset, int length, int flags)
Adds a java int array as a pointer parameter.void
putArray(long[] array, int offset, int length, int flags)
Adds a java long array as a pointer parameter.void
putArray(short[] array, int offset, int length, int flags)
Adds a java short array as a pointer parameter.void
putByte(int value)
Adds an 8 bit integer parameter.void
putDirectBuffer(Buffer value, int offset, int length)
Adds a java direct buffer as a pointer parameter.void
putDouble(double value)
Adds a 64 bit floating point parameter.void
putFloat(float value)
Adds a 32 bit floating point parameter.void
putInt(int value)
Adds a 32 bit integer parameter.void
putJNIEnvironment()
void
putJNIObject(Object obj)
void
putLong(long value)
Adds a 64 bit integer parameter.void
putLongDouble(double value)
void
putLongDouble(BigDecimal value)
void
putObject(Object o, ObjectParameterStrategy strategy, int flags)
void
putObject(Object o, ObjectParameterStrategy strategy, ObjectParameterInfo info)
void
putShort(int value)
Adds a 16 bit integer parameter.void
putStruct(byte[] struct, int offset)
Adds a struct or union as a parameter.void
putStruct(long struct)
Adds a struct or union as a parameter.
-
-
-
Constructor Detail
-
HeapInvocationBuffer
public HeapInvocationBuffer(Function function)
Creates a new instance of HeapInvocationBuffer.- Parameters:
function
- The function that this buffer is going to be used with.
-
HeapInvocationBuffer
public HeapInvocationBuffer(CallContext callContext)
Creates a new instance of HeapInvocationBuffer.- Parameters:
callContext
- TheCallContext
describing how the function should be invoked
-
HeapInvocationBuffer
public HeapInvocationBuffer(CallContext context, int objectCount)
Creates a new instance of HeapInvocationBuffer.- Parameters:
context
- TheCallContext
describing how the function should be invoked
-
-
Method Detail
-
putByte
public final void putByte(int value)
Description copied from class:InvocationBuffer
Adds an 8 bit integer parameter.- Specified by:
putByte
in classInvocationBuffer
- Parameters:
value
- An 8 bit integer value to use as the parameter.
-
putShort
public final void putShort(int value)
Description copied from class:InvocationBuffer
Adds a 16 bit integer parameter.- Specified by:
putShort
in classInvocationBuffer
- Parameters:
value
- A 16 bit integer value to use as the parameter.
-
putInt
public final void putInt(int value)
Description copied from class:InvocationBuffer
Adds a 32 bit integer parameter.- Specified by:
putInt
in classInvocationBuffer
- Parameters:
value
- A 32 bit integer value to use as the parameter.
-
putLong
public final void putLong(long value)
Description copied from class:InvocationBuffer
Adds a 64 bit integer parameter.- Specified by:
putLong
in classInvocationBuffer
- Parameters:
value
- A 64 bit integer value to use as the parameter.
-
putFloat
public final void putFloat(float value)
Description copied from class:InvocationBuffer
Adds a 32 bit floating point parameter.- Specified by:
putFloat
in classInvocationBuffer
- Parameters:
value
- A 32 bit floating point value to use as the parameter.
-
putDouble
public final void putDouble(double value)
Description copied from class:InvocationBuffer
Adds a 64 bit floating point parameter.- Specified by:
putDouble
in classInvocationBuffer
- Parameters:
value
- A 64 bit floating point value to use as the parameter.
-
putLongDouble
public final void putLongDouble(double value)
-
putLongDouble
public final void putLongDouble(BigDecimal value)
-
putAddress
public final void putAddress(long value)
Description copied from class:InvocationBuffer
Adds a native address parameter.- Specified by:
putAddress
in classInvocationBuffer
- Parameters:
value
- A native address value to use as the parameter.
-
putArray
public final void putArray(byte[] array, int offset, int length, int flags)
Description copied from class:InvocationBuffer
Adds a java byte array as a pointer parameter.- Specified by:
putArray
in classInvocationBuffer
- Parameters:
array
- The java array to use as the pointer parameter.offset
- The offset from the start of the array.length
- The length of the array to use.flags
- The flags to use (IN, OUT)
-
putArray
public final void putArray(short[] array, int offset, int length, int flags)
Description copied from class:InvocationBuffer
Adds a java short array as a pointer parameter.- Specified by:
putArray
in classInvocationBuffer
- Parameters:
array
- The java array to use as the pointer parameter.offset
- The offset from the start of the array.length
- The length of the array to use.flags
- The flags to use (IN, OUT)
-
putArray
public final void putArray(int[] array, int offset, int length, int flags)
Description copied from class:InvocationBuffer
Adds a java int array as a pointer parameter.- Specified by:
putArray
in classInvocationBuffer
- Parameters:
array
- The java array to use as the pointer parameter.offset
- The offset from the start of the array.length
- The length of the array to use.flags
- The flags to use (IN, OUT)
-
putArray
public final void putArray(long[] array, int offset, int length, int flags)
Description copied from class:InvocationBuffer
Adds a java long array as a pointer parameter.- Specified by:
putArray
in classInvocationBuffer
- Parameters:
array
- The java array to use as the pointer parameter.offset
- The offset from the start of the array.length
- The length of the array to use.flags
- The flags to use (IN, OUT)
-
putArray
public final void putArray(float[] array, int offset, int length, int flags)
Description copied from class:InvocationBuffer
Adds a java float array as a pointer parameter.- Specified by:
putArray
in classInvocationBuffer
- Parameters:
array
- The java array to use as the pointer parameter.offset
- The offset from the start of the array.length
- The length of the array to use.flags
- The flags to use (IN, OUT)
-
putArray
public final void putArray(double[] array, int offset, int length, int flags)
Description copied from class:InvocationBuffer
Adds a java double array as a pointer parameter.- Specified by:
putArray
in classInvocationBuffer
- Parameters:
array
- The java array to use as the pointer parameter.offset
- The offset from the start of the array.length
- The length of the array to use.flags
- The flags to use (IN, OUT)
-
putDirectBuffer
public final void putDirectBuffer(Buffer value, int offset, int length)
Description copied from class:InvocationBuffer
Adds a java direct buffer as a pointer parameter.- Specified by:
putDirectBuffer
in classInvocationBuffer
- Parameters:
value
- The buffer to use as a pointer argument.offset
- An offset to add to the buffer native address.length
- The length of the buffer to use.
-
putStruct
public final void putStruct(byte[] struct, int offset)
Description copied from class:InvocationBuffer
Adds a struct or union as a parameter. This passes the struct or union by value, not by reference.- Specified by:
putStruct
in classInvocationBuffer
- Parameters:
struct
- A java byte array with the struct contents.offset
- The offset from the start of the array.
-
putStruct
public final void putStruct(long struct)
Description copied from class:InvocationBuffer
Adds a struct or union as a parameter. This passes the struct or union by value, not by reference.- Specified by:
putStruct
in classInvocationBuffer
- Parameters:
struct
- The native address to use as the struct contents.
-
putObject
public final void putObject(Object o, ObjectParameterStrategy strategy, ObjectParameterInfo info)
-
putObject
public final void putObject(Object o, ObjectParameterStrategy strategy, int flags)
-
putJNIEnvironment
public final void putJNIEnvironment()
-
putJNIObject
public final void putJNIObject(Object obj)
-
-