org.jruby.ext.ffi
Class Factory

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

public abstract class Factory
extends java.lang.Object

A factory that can create a FFI Provider


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  AllocatedDirectMemoryIO allocateDirectMemory(Ruby runtime, int size, int align, 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  AbstractInvoker newFunction(Ruby runtime, Pointer address, CallbackInfo cbInfo)
           
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

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 AllocatedDirectMemoryIO.

allocateDirectMemory

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

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

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()

newFunction

public abstract AbstractInvoker newFunction(Ruby runtime,
                                            Pointer address,
                                            CallbackInfo cbInfo)

sizeOf

public abstract int sizeOf(NativeType type)

alignmentOf

public abstract int alignmentOf(NativeType type)


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