org.jruby.ext.ffi
Class AbstractInvoker

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.ext.ffi.AbstractInvoker
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
Direct Known Subclasses:
JFFIInvoker, JNAInvoker

public abstract class AbstractInvoker
extends RubyObject

A native function invoker

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
 
Field Summary
protected  Arity arity
          The arity of this function.
 
Fields inherited from class org.jruby.RubyObject
OBJECT_ALLOCATOR
 
Fields inherited from class org.jruby.RubyBasicObject
ALL_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, metaClass, NEVER, NIL_F, TAINTED_F, UNDEF, UNTRUSTED_F, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F
 
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
 
Constructor Summary
protected AbstractInvoker(Ruby runtime, int arity)
          Creates a new Invoker instance.
protected AbstractInvoker(Ruby runtime, RubyClass klass, int arity)
          Creates a new Invoker instance.
 
Method Summary
 IRubyObject attach(ThreadContext context, IRubyObject module, IRubyObject methodName)
          Attaches this function to a ruby module or class.
static RubyClass createAbstractInvokerClass(Ruby runtime, RubyModule module)
           
protected abstract  DynamicMethod createDynamicMethod(RubyModule module)
           
 Arity getArity()
          Returns the Arity of this function.
protected static NativeParam[] getNativeParameterTypes(Ruby runtime, RubyArray paramTypes)
           
 
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, trust, type_deprecated, type, untaint, untrust, untrusted_p, validateInstanceVariable
 
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkStringType, compareTo, 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, getInternalVariables, getJavaClass, getMetaClass, getRuntime, getSingletonClass, getSingletonClassClone, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hasInstanceVariable, hasInternalVariable, hasVariables, infectBy, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isTaint, isTrue, isUntrusted, makeMetaClass, op_not_equal, op_not, removeFinalizers, removeInstanceVariable, removeInternalVariable, respondsTo, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setTaint, setUntrusted, setVariable, syncVariables, taint, testFrozen, testFrozen, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableGetSize, variableTableRemove, variableTableStore, variableTableSync
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

arity

protected final Arity arity
The arity of this function.

Constructor Detail

AbstractInvoker

protected AbstractInvoker(Ruby runtime,
                          int arity)
Creates a new Invoker instance.

Parameters:
arity -

AbstractInvoker

protected AbstractInvoker(Ruby runtime,
                          RubyClass klass,
                          int arity)
Creates a new Invoker instance.

Parameters:
arity -
Method Detail

createAbstractInvokerClass

public static RubyClass createAbstractInvokerClass(Ruby runtime,
                                                   RubyModule module)

attach

public IRubyObject attach(ThreadContext context,
                          IRubyObject module,
                          IRubyObject methodName)
Attaches this function to a ruby module or class.

Parameters:
module - The module or class to attach the function to.
methodName - The ruby name to attach the function as.

createDynamicMethod

protected abstract DynamicMethod createDynamicMethod(RubyModule module)

getArity

public final Arity getArity()
Returns the Arity of this function.

Returns:
The Arity of the native function.

getNativeParameterTypes

protected static final NativeParam[] getNativeParameterTypes(Ruby runtime,
                                                             RubyArray paramTypes)


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