org.jruby.ext.ffi
Class Factory

java.lang.Object
  extended by org.jruby.ext.ffi.Factory
Direct Known Subclasses:
Factory, Factory

public abstract class Factory
extends java.lang.Object

A factory that can create a FFI Provider


Nested Class Summary
static class Factory.Service
           
 
Constructor Summary
protected Factory()
           
 
Method Summary
abstract  int alignmentOf(NativeType type)
           
abstract  AllocatedDirectMemoryIO allocateDirectMemory(Ruby runtime, int size, boolean clear)
          Allocates memory on the native C heap and wraps it in a MemoryIO accessor.
abstract  CallbackManager getCallbackManager()
           
static Factory getInstance()
          Gets an instance of FFIProvider
 void init(Ruby runtime, RubyModule ffi)
          Registers FFI ruby classes/modules
abstract
<T> T
loadLibrary(java.lang.String libraryName, java.lang.Class<T> libraryClass)
          Loads a native library.
abstract  int sizeOf(NativeType type)
           
abstract  DirectMemoryIO wrapDirectMemory(Ruby runtime, long address)
          Wraps a native C memory address in a MemoryIO accessor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Factory

protected Factory()
Method Detail

getInstance

public static final Factory getInstance()
Gets an instance of FFIProvider

Returns:
an instance of FFIProvider

init

public void init(Ruby runtime,
                 RubyModule ffi)
Registers FFI ruby classes/modules

Parameters:
module - the module to register the classes under

loadLibrary

public abstract <T> T loadLibrary(java.lang.String libraryName,
                                  java.lang.Class<T> libraryClass)
Loads a native library.

Type Parameters:
T -
Parameters:
libraryName - The name of the library to load.
libraryClass - The interface class to map to the library functions.
Returns:
A new instance of libraryClass that an access the library.

allocateDirectMemory

public abstract AllocatedDirectMemoryIO allocateDirectMemory(Ruby runtime,
                                                             int size,
                                                             boolean clear)
Allocates memory on the native C heap and wraps it in a MemoryIO accessor.

Parameters:
size - The number of bytes to allocate.
clear - If the memory should be cleared.
Returns:
A new MemoryIO.

wrapDirectMemory

public abstract DirectMemoryIO wrapDirectMemory(Ruby runtime,
                                                long address)
Wraps a native C memory address in a MemoryIO accessor.

Parameters:
address - The native address to wrap.
Returns:
A new MemoryIO.

getCallbackManager

public abstract CallbackManager getCallbackManager()

sizeOf

public abstract int sizeOf(NativeType type)

alignmentOf

public abstract int alignmentOf(NativeType type)


Copyright © 2002-2007 JRuby Team. All Rights Reserved.