com.kenai.jaffl

Class FFIProvider

public abstract class FFIProvider extends Object

This class defines the facilities a jaffl FFI provider must provide.
Constructor Summary
protected FFIProvider()
Method Summary
abstract intgetLastError()
Gets the last native error code.
abstract MemoryManagergetMemoryManager()
Gets the native memory manager for this provider.
static FFIProvidergetProvider()
Gets an instance of FFIProvider
abstract TypegetType(NativeType type)
abstract <T> TloadLibrary(String libraryName, Class<T> interfaceClass, Map<LibraryOption,?> libraryOptions)
Loads a native library and links the methods defined in {@code interfaceClass} to native methods in the library.
abstract <T> TloadLibrary(Class<T> interfaceClass, Map<LibraryOption,?> libraryOptions, String... libraryNames)
Loads a native library and links the methods defined in {@code interfaceClass} to native methods in the library.
abstract voidsetLastError(int error)
Sets the native error code.

Constructor Detail

FFIProvider

protected FFIProvider()

Method Detail

getLastError

public abstract int getLastError()
Gets the last native error code.

This returns the errno value that was set at the time of the last native function call.

Returns: The errno value.

getMemoryManager

public abstract MemoryManager getMemoryManager()
Gets the native memory manager for this provider.

Returns: a MemoryManager

getProvider

public static final FFIProvider getProvider()
Gets an instance of FFIProvider

Returns: an instance of FFIProvider

getType

public abstract Type getType(NativeType type)

loadLibrary

public abstract <T> T loadLibrary(String libraryName, Class<T> interfaceClass, Map<LibraryOption,?> libraryOptions)
Loads a native library and links the methods defined in {@code interfaceClass} to native methods in the library.

Parameters: libraryName the name of the library to load interfaceClass the interface that describes the native library interface libraryOptions options

Returns: an instance of {@code interfaceclass} that will call the native methods.

loadLibrary

public abstract <T> T loadLibrary(Class<T> interfaceClass, Map<LibraryOption,?> libraryOptions, String... libraryNames)
Loads a native library and links the methods defined in {@code interfaceClass} to native methods in the library.

Parameters: interfaceClass the interface that describes the native library interface libraryOptions options libraryNames the list of libraries to load

Returns: an instance of {@code interfaceclass} that will call the native methods.

setLastError

public abstract void setLastError(int error)
Sets the native error code.

Parameters: error The value to set errno to.