org.jruby.ext.ffi.jna
Class JNAInvoker

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

public final class JNAInvoker
extends AbstractInvoker

A native invoker that uses JNA.

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
 
Fields inherited from class org.jruby.ext.ffi.AbstractInvoker
arity
 
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
JNAInvoker(Ruby runtime, RubyClass klass, Function function, org.jruby.ext.ffi.jna.FunctionInvoker functionInvoker, org.jruby.ext.ffi.jna.Marshaller[] marshallers)
           
 
Method Summary
 DynamicMethod createDynamicMethod(RubyModule module)
          Attaches this function to a ruby module or class.
static RubyClass createInvokerClass(Ruby runtime, RubyModule module)
           
 IRubyObject invoke(ThreadContext context, IRubyObject[] rubyArgs)
          Invokes the native function with the supplied ruby arguments.
static IRubyObject newInstance(ThreadContext context, IRubyObject recv, IRubyObject[] args)
           
 
Methods inherited from class org.jruby.ext.ffi.AbstractInvoker
attach, createAbstractInvokerClass, getArity, getNativeParameterTypes
 
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
 

Constructor Detail

JNAInvoker

public JNAInvoker(Ruby runtime,
                  RubyClass klass,
                  Function function,
                  org.jruby.ext.ffi.jna.FunctionInvoker functionInvoker,
                  org.jruby.ext.ffi.jna.Marshaller[] marshallers)
Method Detail

createInvokerClass

public static RubyClass createInvokerClass(Ruby runtime,
                                           RubyModule module)

newInstance

public static IRubyObject newInstance(ThreadContext context,
                                      IRubyObject recv,
                                      IRubyObject[] args)

invoke

public IRubyObject invoke(ThreadContext context,
                          IRubyObject[] rubyArgs)
Invokes the native function with the supplied ruby arguments.

Parameters:
rubyArgs - The ruby arguments to pass to the native function.
Returns:
The return value from the native function, as a ruby object.

createDynamicMethod

public DynamicMethod createDynamicMethod(RubyModule module)
Attaches this function to a ruby module or class.

Specified by:
createDynamicMethod in class AbstractInvoker
Parameters:
module - The module or class to attach the function to.
methodName - The ruby name to attach the function as.


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