org.jruby.ext.ffi
Class FFIProvider

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.ext.ffi.FFIProvider
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
Direct Known Subclasses:
JNAProvider

public abstract class FFIProvider
extends RubyObject

Base class for all FFI providers

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.ObjectMethods
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.BasicObjectMethods, RubyBasicObject.Finalizer, RubyBasicObject.VariableTableEntry
 
Field Summary
static java.lang.String CLASS_NAME
           
static java.lang.String MODULE_NAME
          The name of the module to place all the classes/methods under.
 
Fields inherited from class org.jruby.RubyObject
OBJECT_ALLOCATOR
 
Fields inherited from class org.jruby.RubyBasicObject
ALL_F, dataStruct, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, metaClass, NEVER, NIL_F, TAINTED_F, UNDEF, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, VARIABLE_TABLE_DEFAULT_CAPACITY, VARIABLE_TABLE_EMPTY_TABLE, VARIABLE_TABLE_LOAD_FACTOR, VARIABLE_TABLE_MAXIMUM_CAPACITY, variableTable, variableTableSize, variableTableThreshold
 
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
 
Constructor Summary
protected FFIProvider(Ruby runtime)
           
protected FFIProvider(Ruby runtime, RubyClass klass)
           
 
Method Summary
abstract  Invoker createInvoker(Ruby runtime, java.lang.String libraryName, java.lang.String functionName, NativeType returnType, NativeParam[] parameterTypes, java.lang.String convention)
          Creates a new invoker for a native function.
 IRubyObject createInvoker(ThreadContext context, IRubyObject[] args)
           
static RubyClass createProviderClass(Ruby runtime, RubyModule module)
           
abstract  int getLastError()
          Gets the last native error code.
 IRubyObject getLastError(ThreadContext context)
           
 IRubyObject getLastError(ThreadContext context, IRubyObject error)
           
static RubyModule getModule(Ruby runtime)
           
abstract  void setLastError(int error)
          Sets the native error code.
 
Methods inherited from class org.jruby.RubyObject
as, attachToObjectSpace, callInit, checkFrozen, convertToType, createObjectClass, display, dup, eql_p, eqlInternal, equal_p, equalInternal, equals, evalUnder, evalUnder, extend, freeze, frozen_p, getNativeTypeIndex, hash, hashCode, id_deprecated, id, initialize_copy, initialize, inspect, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval, instance_exec, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, kind_of_p, method, methods, nil_p, op_eqq, op_equal, op_match, private_methods, protected_methods, public_methods, puts, rbClone, remove_instance_variable, respond_to_p, respond_to_p, send, send, send, send, send, singleton_methods, singleton_methods19, singletonMethods, specificEval, specificEval, specificEval, specificEval, specificEval, taint, tainted_p, to_a, to_java, to_s, toString, type_deprecated, type, untaint, validateInstanceVariable
 
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkStringType, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataWrapStruct, ensureInstanceVariablesSettable, eql, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, getFlag, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariableList, getInternalVariables, getJavaClass, getMetaClass, getRuntime, getSingletonClass, getSingletonClassClone, getType, getVariableCount, getVariableList, getVariableMap, getVariableNameList, hasInstanceVariable, hasInternalVariable, hasVariables, infectBy, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isRubyVariable, isTaint, isTrue, makeMetaClass, op_not_equal, op_not, removeFinalizers, removeInstanceVariable, removeInternalVariable, respondsTo, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setTaint, syncVariables, taint, testFrozen, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableGetMap, variableTableGetMap, variableTableGetSize, variableTableGetTable, variableTableReadLocked, variableTableRehash, variableTableRemove, variableTableStore, variableTableSync
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

MODULE_NAME

public static final java.lang.String MODULE_NAME
The name of the module to place all the classes/methods under.

See Also:
Constant Field Values

CLASS_NAME

public static final java.lang.String CLASS_NAME
See Also:
Constant Field Values
Constructor Detail

FFIProvider

protected FFIProvider(Ruby runtime,
                      RubyClass klass)

FFIProvider

protected FFIProvider(Ruby runtime)
Method Detail

createProviderClass

public static RubyClass createProviderClass(Ruby runtime,
                                            RubyModule module)

getModule

public static RubyModule getModule(Ruby runtime)

createInvoker

public IRubyObject createInvoker(ThreadContext context,
                                 IRubyObject[] args)

getLastError

public IRubyObject getLastError(ThreadContext context)

getLastError

public IRubyObject getLastError(ThreadContext context,
                                IRubyObject error)

createInvoker

public abstract Invoker createInvoker(Ruby runtime,
                                      java.lang.String libraryName,
                                      java.lang.String functionName,
                                      NativeType returnType,
                                      NativeParam[] parameterTypes,
                                      java.lang.String convention)
Creates a new invoker for a native function.

Parameters:
libraryName - The library that contains the function.
functionName - The function name.
returnType - The return type of the function.
parameterTypes - The parameter types the function takes.
Returns:
a new Invoker instance.

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.

setLastError

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

Parameters:
error - The value to set errno to.


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