Top Description Inners Fields Constructors Methods
org.lwjgl.system.libffi

public Class FFIType

extends Struct<FFIType>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable
Annotations
@NativeType:struct ffi_type
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

Contains information about a libffi type.

Layout


struct ffi_type {
    size_t size;
    unsigned short alignment;
    unsigned short type;
    ffi_type * elements;
}

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
FFIType.Buffer

An array of FFIType structs.

Field Summary

Modifier and TypeField and Description
public static final int
ALIGNMENT

The struct member offsets.

public static final int
ALIGNOF

The struct alignment in bytes.

public static final int
ELEMENTS

The struct member offsets.

public static final int
SIZE

The struct member offsets.

public static final int
SIZEOF

The struct size in bytes.

public static final int
TYPE

The struct member offsets.

Inherited from org.lwjgl.system.Struct:
containerDEFAULT_ALIGN_ASDEFAULT_PACK_ALIGNMENT

Constructor Summary

AccessConstructor and Description
protected
FFIType(long address, ByteBuffer container)

public
FFIType(ByteBuffer container)

Creates a FFIType instance at the current position of the specified ByteBuffer container.

Method Summary

Modifier and TypeMethod and Description
public short
alignment()

set by libffi; you should initialize it to zero.

public FFIType
alignment(short value)

Sets the specified value to the alignment field.

public static FFIType
calloc()

Returns a new FFIType instance allocated with memCalloc.

public static FFIType.Buffer
calloc(int
the buffer capacity
capacity
)

Returns a new FFIType.Buffer instance allocated with memCalloc.

public static FFIType
calloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new FFIType instance allocated on the specified MemoryStack and initializes all its bits to zero.

public static FFIType.Buffer
calloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new FFIType.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

protected FFIType
create(long
the struct memory address
address
,
ByteBuffer
an optional container buffer, to be referenced strongly by the struct instance.
container
)

Implements abstract org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.
public static FFIType
create()

Returns a new FFIType instance allocated with BufferUtils.

public static FFIType
create(long address)

Returns a new FFIType instance for the specified memory address.

public static FFIType.Buffer
create(int
the buffer capacity
capacity
)

Returns a new FFIType.Buffer instance allocated with BufferUtils.

public static FFIType.Buffer
create(long
the memory address
address
,
int
the buffer capacity
capacity
)

Create a FFIType.Buffer instance at the specified memory.

public static FFIType
createSafe(long address)

Like create, but returns null if address is NULL.

public static FFIType.Buffer
createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

public PointerBuffer

Returns:

a null-terminated array of pointers to ffi_type objects. There is one element per field of the struct.
elements
(int
the number of elements in the returned buffer
capacity
)

public FFIType
elements(PointerBuffer value)

Sets the address of the specified PointerBuffer to the elements field.

public static FFIType
malloc()

Returns a new FFIType instance allocated with memAlloc.

public static FFIType.Buffer
malloc(int
the buffer capacity
capacity
)

Returns a new FFIType.Buffer instance allocated with memAlloc.

public static FFIType
malloc(MemoryStack
the stack from which to allocate
stack
)

Returns a new FFIType instance allocated on the specified MemoryStack.

public static FFIType.Buffer
malloc(int
the buffer capacity
capacity
,
MemoryStack
the stack from which to allocate
stack
)

Returns a new FFIType.Buffer instance allocated on the specified MemoryStack.

public static short
nalignment(long struct)

Unsafe version of alignment.

public static void
nalignment(long struct, short value)

Unsafe version of alignment.

public static PointerBuffer
nelements(long struct, int capacity)

Unsafe version of elements.

public static void
nelements(long struct, PointerBuffer value)

Unsafe version of elements.

public static long
nsize(long struct)

Unsafe version of size.

public static void
nsize(long struct, long value)

Unsafe version of size.

public static short
ntype(long struct)

Unsafe version of type.

public static void
ntype(long struct, short value)

Unsafe version of type.

public FFIType
set(long size, short alignment, short type, PointerBuffer elements)

Initializes this struct with the specified values.

public FFIType

Returns:

this struct
set
(FFIType
the source struct
src
)

Copies the specified struct data to this struct.

public long
size()

set by libffi; you should initialize it to zero.

public FFIType
size(long value)

Sets the specified value to the size field.

public int
sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).
public short
type()

for a structure, this should be set to TYPE_STRUCT.

public FFIType
type(short value)

Sets the specified value to the type field.

Inherited from org.lwjgl.system.Struct:
__array__array__array__checkContainer__checkMalloc__create__getContainer__getContainer__member__member__member__padding__padding__struct__struct__union__unionclearfreeisNullvalidate

Field Detail

ALIGNMENTback to summary
public static final int ALIGNMENT

The struct member offsets.

ALIGNOFback to summary
public static final int ALIGNOF

The struct alignment in bytes.

ELEMENTSback to summary
public static final int ELEMENTS

The struct member offsets.

SIZEback to summary
public static final int SIZE

The struct member offsets.

SIZEOFback to summary
public static final int SIZEOF

The struct size in bytes.

TYPEback to summary
public static final int TYPE

The struct member offsets.

Constructor Detail

FFITypeback to summary
protected FFIType(long address, ByteBuffer container)
FFITypeback to summary
public FFIType(ByteBuffer container)

Creates a FFIType instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

The created instance holds a strong reference to the container object.

Method Detail

alignmentback to summary
public short alignment()

set by libffi; you should initialize it to zero.

Annotations
@NativeType:unsigned short
alignmentback to summary
public FFIType alignment(short value)

Sets the specified value to the alignment field.

callocback to summary
public static FFIType calloc()

Returns a new FFIType instance allocated with memCalloc. The instance must be explicitly freed.

callocback to summary
public static FFIType.Buffer calloc(int capacity)

Returns a new FFIType.Buffer instance allocated with memCalloc. The instance must be explicitly freed.

Parameters
capacity:int

the buffer capacity

callocback to summary
public static FFIType calloc(MemoryStack stack)

Returns a new FFIType instance allocated on the specified MemoryStack and initializes all its bits to zero.

Parameters
stack:MemoryStack

the stack from which to allocate

callocback to summary
public static FFIType.Buffer calloc(int capacity, MemoryStack stack)

Returns a new FFIType.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.

Parameters
capacity:int

the buffer capacity

stack:MemoryStack

the stack from which to allocate

createback to summary
protected FFIType create(long address, ByteBuffer container)

Implements abstract org.lwjgl.system.Struct.create.

Doc from org.lwjgl.system.Struct.create.

Similar to the constructor, but returns the exact type of the Struct subclass.

Effectively, every Struct instance is a factory for more instances of the same type. This is used by StructBuffer.

Parameters
address:long

the struct memory address

container:ByteBuffer

an optional container buffer, to be referenced strongly by the struct instance.

Annotations
@Override
createback to summary
public static FFIType create()

Returns a new FFIType instance allocated with BufferUtils.

createback to summary
public static FFIType create(long address)

Returns a new FFIType instance for the specified memory address.

createback to summary
public static FFIType.Buffer create(int capacity)

Returns a new FFIType.Buffer instance allocated with BufferUtils.

Parameters
capacity:int

the buffer capacity

createback to summary
public static FFIType.Buffer create(long address, int capacity)

Create a FFIType.Buffer instance at the specified memory.

Parameters
address:long

the memory address

capacity:int

the buffer capacity

createSafeback to summary
public static FFIType createSafe(long address)

Like create, but returns null if address is NULL.

Annotations
@Nullable
createSafeback to summary
public static FFIType.Buffer createSafe(long address, int capacity)

Like create, but returns null if address is NULL.

Annotations
@Nullable
elementsback to summary
public PointerBuffer elements(int capacity)
Parameters
capacity:int

the number of elements in the returned buffer

Returns:PointerBuffer

a null-terminated array of pointers to ffi_type objects. There is one element per field of the struct.

Annotations
@Nullable
@NativeType:ffi_type *
elementsback to summary
public FFIType elements(PointerBuffer value)

Sets the address of the specified PointerBuffer to the elements field.

mallocback to summary
public static FFIType malloc()

Returns a new FFIType instance allocated with memAlloc. The instance must be explicitly freed.

mallocback to summary
public static FFIType.Buffer malloc(int capacity)

Returns a new FFIType.Buffer instance allocated with memAlloc. The instance must be explicitly freed.

Parameters
capacity:int

the buffer capacity

mallocback to summary
public static FFIType malloc(MemoryStack stack)

Returns a new FFIType instance allocated on the specified MemoryStack.

Parameters
stack:MemoryStack

the stack from which to allocate

mallocback to summary
public static FFIType.Buffer malloc(int capacity, MemoryStack stack)

Returns a new FFIType.Buffer instance allocated on the specified MemoryStack.

Parameters
capacity:int

the buffer capacity

stack:MemoryStack

the stack from which to allocate

nalignmentback to summary
public static short nalignment(long struct)

Unsafe version of alignment.

nalignmentback to summary
public static void nalignment(long struct, short value)

Unsafe version of alignment.

nelementsback to summary
public static PointerBuffer nelements(long struct, int capacity)

Unsafe version of elements.

Annotations
@Nullable
nelementsback to summary
public static void nelements(long struct, PointerBuffer value)

Unsafe version of elements.

nsizeback to summary
public static long nsize(long struct)

Unsafe version of size.

nsizeback to summary
public static void nsize(long struct, long value)

Unsafe version of size.

ntypeback to summary
public static short ntype(long struct)

Unsafe version of type.

ntypeback to summary
public static void ntype(long struct, short value)

Unsafe version of type.

setback to summary
public FFIType set(long size, short alignment, short type, PointerBuffer elements)

Initializes this struct with the specified values.

setback to summary
public FFIType set(FFIType src)

Copies the specified struct data to this struct.

Parameters
src:FFIType

the source struct

Returns:FFIType

this struct

sizeback to summary
public long size()

set by libffi; you should initialize it to zero.

Annotations
@NativeType:size_t
sizeback to summary
public FFIType size(long value)

Sets the specified value to the size field.

sizeofback to summary
public int sizeof()

Implements abstract org.lwjgl.system.Struct.sizeof.

Doc from org.lwjgl.system.Struct.sizeof.

Returns sizeof(struct).

Annotations
@Override
typeback to summary
public short type()

for a structure, this should be set to TYPE_STRUCT.

Annotations
@NativeType:unsigned short
typeback to summary
public FFIType type(short value)

Sets the specified value to the type field.

org.lwjgl.system.libffi back to summary

public Class FFIType.Buffer

extends StructBuffer<FFIType, FFIType.Buffer>
implements NativeResource
Class Inheritance
All Implemented Interfaces
org.lwjgl.system.NativeResource, java.lang.AutoCloseable

An array of FFIType structs.

Field Summary

Modifier and TypeField and Description
private static final FFIType

Constructor Summary

AccessConstructor and Description
public
Buffer(ByteBuffer container)

Creates a new FFIType.Buffer instance backed by the specified container.

public
Buffer(long address, int cap)

pack-priv
Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap)

Method Summary

Modifier and TypeMethod and Description
public short

Returns:

the value of the FFIType#alignment field.
alignment
()

public FFIType.Buffer
alignment(short value)

Sets the specified value to the FFIType#alignment field.

public PointerBuffer

Returns:

a PointerBuffer view of the data pointed to by the FFIType#elements field.
elements
(int
the number of elements in the returned buffer
capacity
)

public FFIType.Buffer
elements(PointerBuffer value)

Sets the address of the specified PointerBuffer to the FFIType#elements field.

protected FFIType
protected FFIType.Buffer
public long

Returns:

the value of the FFIType#size field.
size
()

public FFIType.Buffer
size(long value)

Sets the specified value to the FFIType#size field.

public short

Returns:

the value of the FFIType#type field.
type
()

public FFIType.Buffer
type(short value)

Sets the specified value to the FFIType#type field.

Inherited from org.lwjgl.system.StructBuffer:
applyapplyforEachgetgetgetgetiteratorparallelStreamputputsizeofspliteratorstream

Field Detail

ELEMENT_FACTORYback to summary
private static final FFIType ELEMENT_FACTORY

Constructor Detail

Bufferback to summary
public Buffer(ByteBuffer container)

Creates a new FFIType.Buffer instance backed by the specified container.

Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided by FFIType#SIZEOF, and its mark will be undefined.

The created buffer instance holds a strong reference to the container object.

Bufferback to summary
public Buffer(long address, int cap)
Bufferback to summary
pack-priv Buffer(long address, ByteBuffer container, int mark, int pos, int lim, int cap)

Method Detail

alignmentback to summary
public short alignment()
Returns:short

the value of the FFIType#alignment field.

Annotations
@NativeType:unsigned short
alignmentback to summary
public FFIType.Buffer alignment(short value)

Sets the specified value to the FFIType#alignment field.

elementsback to summary
public PointerBuffer elements(int capacity)
Parameters
capacity:int

the number of elements in the returned buffer

Returns:PointerBuffer

a PointerBuffer view of the data pointed to by the FFIType#elements field.

Annotations
@Nullable
@NativeType:ffi_type *
elementsback to summary
public FFIType.Buffer elements(PointerBuffer value)

Sets the address of the specified PointerBuffer to the FFIType#elements field.

getElementFactoryback to summary
protected FFIType getElementFactory()

Implements abstract org.lwjgl.system.StructBuffer.getElementFactory.

Annotations
@Override
selfback to summary
protected FFIType.Buffer self()

Implements abstract org.lwjgl.system.CustomBuffer.self.

Annotations
@Override
sizeback to summary
public long size()
Returns:long

the value of the FFIType#size field.

Annotations
@NativeType:size_t
sizeback to summary
public FFIType.Buffer size(long value)

Sets the specified value to the FFIType#size field.

typeback to summary
public short type()
Returns:short

the value of the FFIType#type field.

Annotations
@NativeType:unsigned short
typeback to summary
public FFIType.Buffer type(short value)

Sets the specified value to the FFIType#type field.