Package org.jruby.ext.ffi
Class AbstractInvoker
java.lang.Object
org.jruby.RubyBasicObject
org.jruby.RubyObject
org.jruby.ext.ffi.MemoryObject
org.jruby.ext.ffi.AbstractMemory
org.jruby.ext.ffi.Pointer
org.jruby.ext.ffi.AbstractInvoker
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable<IRubyObject>
,InstanceVariables
,InternalVariables
,IRubyObject
,CoreObjectType
- Direct Known Subclasses:
Function
,JFFIInvoker
A native function invoker
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.Data
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer
-
Field Summary
FieldsFields inherited from class org.jruby.ext.ffi.AbstractMemory
ABSTRACT_MEMORY_RUBY_CLASS, size, typeSize
Fields inherited from class org.jruby.RubyObject
IVAR_INSPECTING_OBJECT_ALLOCATOR, OBJECT_ALLOCATOR, REIFYING_OBJECT_ALLOCATOR
Fields inherited from class org.jruby.RubyBasicObject
ALL_F, BASICOBJECT_ALLOCATOR, COMPARE_BY_IDENTITY_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, IS_OVERLAID_F, metaClass, NEVER, NIL_F, REFINED_MODULE_F, STAMP_OFFSET, TAINTED_F, UNDEF, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, USER8_F, USER9_F, USERA_F, VAR_TABLE_OFFSET, varTable, varTableStamp
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractInvoker
(Ruby runtime, RubyClass klass, int arity, MemoryIO io) Creates a newAbstractInvoker
instance. -
Method Summary
Modifier and TypeMethodDescriptionattach
(ThreadContext context, IRubyObject obj, IRubyObject methodName) Attaches this function to a ruby module or class.static RubyClass
createAbstractInvokerClass
(ThreadContext context, RubyModule FFI, RubyClass Pointer) protected abstract DynamicMethod
createDynamicMethod
(RubyModule module) Create a methodfinal Arity
getArity()
Returns theArity
of this function.Methods inherited from class org.jruby.ext.ffi.Pointer
address, createPointerClass, getAddress, getNull, getPointer, getPointerClass, initialize, initialize, initialize_copy, null_p, op_equal, order, size, slice, slice, to_s
Methods inherited from class org.jruby.ext.ffi.AbstractMemory
allocateMemoryIO, aref, calculateTypeSize, checkArray, clear, createAbstractMemoryClass, equals, get, get_array_of_float, get_array_of_float64, get_array_of_int16, get_array_of_int32, get_array_of_int64, get_array_of_int8, get_array_of_long, get_array_of_pointer, get_array_of_string, get_array_of_string, get_array_of_uint16, get_array_of_uint32, get_array_of_uint64, get_array_of_uint8, get_array_of_ulong, get_bytes, get_float32, get_float32, get_float64, get_float64, get_int16, get_int16, get_int32, get_int32, get_int64, get_int64, get_int8, get_int8, get_long, get_long, get_pointer, get_pointer, get_string, get_string, get_string, get_uint16, get_uint16, get_uint32, get_uint32, get_uint64, get_uint64, get_uint8, get_uint8, get_ulong, get_ulong, getOffset, getSize, hash, hashCode, op_plus, order, order, put, put_array_of_float, put_array_of_float64, put_array_of_int16, put_array_of_int32, put_array_of_int64, put_array_of_int8, put_array_of_long, put_array_of_pointer, put_array_of_uint16, put_array_of_uint32, put_array_of_uint64, put_array_of_uint8, put_array_of_ulong, put_bytes, put_callback, put_float32, put_float32, put_float64, put_float64, put_int16, put_int16, put_int32, put_int32, put_int64, put_int64, put_int8, put_int8, put_long, put_long, put_pointer, put_pointer, put_string, put_uint16, put_uint16, put_uint32, put_uint32, put_uint64, put_uint64, put_uint8, put_uint8, put_ulong, put_ulong, read_array_of_float, read_array_of_float64, read_array_of_int16, read_array_of_int32, read_array_of_int64, read_array_of_int8, read_array_of_long, read_array_of_pointer, read_array_of_string, read_array_of_string, read_array_of_type, read_array_of_type, read_array_of_uint16, read_array_of_uint32, read_array_of_uint64, read_array_of_uint8, read_array_of_ulong, read_bytes, read_char, read_double, read_float, read_int, read_long, read_long_long, read_pointer, read_short, read_string, read_string, read_uchar, read_uint, read_uint16, read_uint8, read_ulong, read_ulong_long, read_ushort, slice, to_ptr, total, type_size, write_array_of_float, write_array_of_float64, write_array_of_int16, write_array_of_int32, write_array_of_int64, write_array_of_int8, write_array_of_long, write_array_of_pointer, write_array_of_type, write_array_of_type, write_array_of_uint16, write_array_of_uint32, write_array_of_uint64, write_array_of_uint8, write_array_of_ulong, write_bytes, write_char, write_double, write_float, write_int, write_long, write_long_long, write_pointer, write_short, write_string, write_string, write_uchar, write_uint, write_ulong_long, write_ushort
Methods inherited from class org.jruby.ext.ffi.MemoryObject
getMemoryIO, setMemoryIO
Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, dig, dig1, dig2, eqlInternal, equalInternal, finishObjectClass, getNativeClassIndex, inspect, op_eqq, puts, specificEval, toRubyString, toString
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkCallMethod, checkFrozen, checkStringType, cloneSetup, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, dataGetStruct, dataGetStructChecked, dataWrapStruct, decode, display, dup, dupFinalizer, dupSetup, ensureInstanceVariablesSettable, eql, eql_p, eql_p, equal_p, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, finishBasicObjectClass, forEachInstanceVariable, forEachInstanceVariableName, freeze, frozen_p, getCurrentContext, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMarshalVariableList, getMetaClass, getMetaClass, getNativeHandle, getNativeTypeIndex, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getSingletonClassCloneAndAttach, getSingletonClassCloneAndAttach, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInstanceVariables, hasInternalVariable, hasVariables, id, infectBy, initialize, initialize_copy, inspect, inspect, inspectHashCode, 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, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isSpecialConst, isSpecialObject, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, makeMetaClass, makeMetaClassBootstrap, method, method, method, method_missing, methods, methods, nil_p, nonFixnumHashCode, nonFixnumHashCode, OBJ_INIT_COPY, objInitCopy, op_cmp, op_match, op_not, op_not_equal, op_not_match, private_methods, protected_methods, public_methods, rbClone, rbClone, rbInspect, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setNativeHandle, setTaint, setUntrusted, setVariable, singleton_method, singleton_method, singleton_method_added, singleton_method_removed, singleton_method_undefined, singleton_methods, singletonClass, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, to_s, toJava, trust, type, untaint, untrust, untrusted_p, validateInstanceVariable, validateInstanceVariable, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableRemove, variableTableStore, variableTableSync, yieldUnder, yieldUnder
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.jruby.runtime.builtin.IRubyObject
checkStringType19, dup, marshalLiveVariables
-
Field Details
-
arity
The arity of this function.
-
-
Constructor Details
-
AbstractInvoker
Creates a newAbstractInvoker
instance.- Parameters:
runtime
- the runtimeklass
- the classarity
- the arityio
- the memory
-
-
Method Details
-
createAbstractInvokerClass
public static RubyClass createAbstractInvokerClass(ThreadContext context, RubyModule FFI, RubyClass Pointer) -
attach
Attaches this function to a ruby module or class.- Parameters:
context
- The thread context.obj
- The module or class to attach the function to.methodName
- The ruby name to attach the function as.- Returns:
- itself
-
createDynamicMethod
Create a method- Parameters:
module
- for which module- Returns:
- a method
-
getArity
Returns theArity
of this function.- Returns:
- The
Arity
of the native function.
-