org.jruby.ext.ffi
Class CallbackInfo

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

public class CallbackInfo
extends Type
implements NativeParam

Defines a C callback's parameters and return type.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jruby.ext.ffi.Type
Type.Array, Type.Builtin
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.Data, 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.
static java.lang.String CLASS_NAME
           
protected  Type[] parameterTypes
           
protected  Type returnType
           
 
Fields inherited from class org.jruby.ext.ffi.Type
alignment, nativeType, size
 
Fields inherited from class org.jruby.RubyObject
OBJECT_ALLOCATOR
 
Fields inherited from class org.jruby.RubyBasicObject
ALL_F, COMPARE_BY_IDENTITY_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
CallbackInfo(Ruby runtime, RubyClass klazz, Type returnType, Type[] paramTypes)
          Creates a new CallbackInfo instance.
 
Method Summary
static RubyClass createCallbackInfoClass(Ruby runtime, RubyModule module)
          Creates a CallbackInfo class for a ruby runtime
 Arity getArity()
          Returns the Arity of this function.
 Type[] getParameterTypes()
          Gets the ruby parameter types of the callback
 java.lang.Object getProviderCallbackInfo()
           
 Type getReturnType()
          Gets the native return type the callback should return
static IRubyObject newCallbackInfo(ThreadContext context, IRubyObject klass, IRubyObject returnType, IRubyObject paramTypes)
          CallbackInfo.new
 IRubyObject param_types(ThreadContext context)
           
 IRubyObject result_type(ThreadContext context)
           
 void setProviderCallbackInfo(java.lang.Object info)
           
 IRubyObject to_s(ThreadContext context)
           
 java.lang.String toString()
          The default toString method is just a wrapper that calls the Ruby "to_s" method.
 
Methods inherited from class org.jruby.ext.ffi.Type
alignment, createTypeClass, getNativeAlignment, getNativeSize, getNativeType, getTypeClass, size
 
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, methods, methods19, nil_p, op_eqq, op_equal, op_match, op_not_match, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, 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, 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, callMethod, callMethod, callSuper, checkArrayType, checkStringType, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataGetStructChecked, 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, toJava, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableGetSize, variableTableRemove, variableTableStore, variableTableSync
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jruby.ext.ffi.NativeParam
getNativeType
 

Field Detail

CLASS_NAME

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

arity

protected final Arity arity
The arity of this function.


parameterTypes

protected final Type[] parameterTypes

returnType

protected final Type returnType
Constructor Detail

CallbackInfo

public CallbackInfo(Ruby runtime,
                    RubyClass klazz,
                    Type returnType,
                    Type[] paramTypes)
Creates a new CallbackInfo instance.

Parameters:
runtime - The runtime to create the instance for
klazz - The ruby class of the CallbackInfo instance
returnType - The return type of the callback
paramTypes - The parameter types of the callback
Method Detail

createCallbackInfoClass

public static RubyClass createCallbackInfoClass(Ruby runtime,
                                                RubyModule module)
Creates a CallbackInfo class for a ruby runtime

Parameters:
runtime - The runtime to create the class for
module - The module to place the class in
Returns:
The newly created ruby class

newCallbackInfo

public static final IRubyObject newCallbackInfo(ThreadContext context,
                                                IRubyObject klass,
                                                IRubyObject returnType,
                                                IRubyObject paramTypes)
CallbackInfo.new

Parameters:
context - The current ruby thread context
klass - The ruby class of the CallbackInfo instance
returnType - The ruby return type
_paramTypes - An array containing the ruby parameter types
Returns:
A new CallbackInfo instance

getArity

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

Returns:
The Arity of the native function.

getReturnType

public final Type getReturnType()
Gets the native return type the callback should return

Returns:
The native return type

getParameterTypes

public final Type[] getParameterTypes()
Gets the ruby parameter types of the callback

Returns:
An array of the parameter types

getProviderCallbackInfo

public final java.lang.Object getProviderCallbackInfo()

setProviderCallbackInfo

public final void setProviderCallbackInfo(java.lang.Object info)

to_s

public final IRubyObject to_s(ThreadContext context)

toString

public final java.lang.String toString()
Description copied from class: RubyObject
The default toString method is just a wrapper that calls the Ruby "to_s" method.

Overrides:
toString in class RubyObject

result_type

public final IRubyObject result_type(ThreadContext context)

param_types

public final IRubyObject param_types(ThreadContext context)


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