org.jruby.ext.ffi
Class Pointer

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.ext.ffi.AbstractMemory
              extended by org.jruby.ext.ffi.Pointer
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
Direct Known Subclasses:
AbstractInvoker, AutoPointer, DynamicLibrary.Symbol, MemoryPointer

public class Pointer
extends AbstractMemory

C memory pointer operations.

This is an abstract class that defines Pointer operations

See Also:
Serialized Form

Nested Class Summary
 
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
 
Fields inherited from class org.jruby.ext.ffi.AbstractMemory
ABSTRACT_MEMORY_RUBY_CLASS, io, size, typeSize
 
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
  Pointer(Ruby runtime, DirectMemoryIO io)
           
  Pointer(Ruby runtime, DirectMemoryIO io, long size, int typeSize)
           
protected Pointer(Ruby runtime, RubyClass klass, DirectMemoryIO io)
           
protected Pointer(Ruby runtime, RubyClass klass, DirectMemoryIO io, long size)
           
protected Pointer(Ruby runtime, RubyClass klass, DirectMemoryIO io, long size, int typeSize)
           
 
Method Summary
 IRubyObject address(ThreadContext context)
           
static RubyClass createPointerClass(Ruby runtime, RubyModule module)
           
 long getAddress()
          Gets the native memory address of this pointer.
protected  Pointer getPointer(Ruby runtime, long offset)
           
static RubyClass getPointerClass(Ruby runtime)
           
 IRubyObject initialize(ThreadContext context, IRubyObject address)
           
 IRubyObject initialize(ThreadContext context, IRubyObject type, IRubyObject address)
           
 IRubyObject inspect(ThreadContext context)
           
 IRubyObject null_p(ThreadContext context)
          Tests if this Pointer represents the C NULL value.
protected  AbstractMemory slice(Ruby runtime, long offset)
           
 IRubyObject to_s(ThreadContext context, IRubyObject[] args)
           
 
Methods inherited from class org.jruby.ext.ffi.AbstractMemory
aref, calculateSize, checkArray, clear, createAbstractMemoryClass, eql, equals, 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_float64, get_int16, get_int32, get_int64, get_int8, get_long, get_pointer, get_string, get_string, get_uint16, get_uint32, get_uint64, get_uint8, get_ulong, getMemoryIO, getOffset, getSize, hash, hashCode, op_equal, op_plus, 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_float64, put_int16, put_int32, put_int64, put_int8, put_long, put_pointer, put_string, put_uint16, put_uint32, put_uint64, put_uint8, put_ulong, read_string, read_string, setMemoryIO, total, type_size
 
Methods inherited from class org.jruby.RubyObject
as, attachToObjectSpace, callInit, checkFrozen, convertToType, createObjectClass, display, dup, eql_p, eqlInternal, equal_p, equalInternal, evalUnder, evalUnder, extend, freeze, frozen_p, getNativeTypeIndex, hash, 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_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, 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, callMethod, callMethod, callSuper, checkArrayType, checkStringType, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataGetStructChecked, dataWrapStruct, ensureInstanceVariablesSettable, 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
 

Constructor Detail

Pointer

public Pointer(Ruby runtime,
               DirectMemoryIO io)

Pointer

public Pointer(Ruby runtime,
               DirectMemoryIO io,
               long size,
               int typeSize)

Pointer

protected Pointer(Ruby runtime,
                  RubyClass klass,
                  DirectMemoryIO io)

Pointer

protected Pointer(Ruby runtime,
                  RubyClass klass,
                  DirectMemoryIO io,
                  long size)

Pointer

protected Pointer(Ruby runtime,
                  RubyClass klass,
                  DirectMemoryIO io,
                  long size,
                  int typeSize)
Method Detail

createPointerClass

public static RubyClass createPointerClass(Ruby runtime,
                                           RubyModule module)

getPointerClass

public static final RubyClass getPointerClass(Ruby runtime)

initialize

public IRubyObject initialize(ThreadContext context,
                              IRubyObject address)

initialize

public IRubyObject initialize(ThreadContext context,
                              IRubyObject type,
                              IRubyObject address)

null_p

public IRubyObject null_p(ThreadContext context)
Tests if this Pointer represents the C NULL value.

Returns:
true if the address is NULL.

to_s

public IRubyObject to_s(ThreadContext context,
                        IRubyObject[] args)
Overrides:
to_s in class AbstractMemory

inspect

public IRubyObject inspect(ThreadContext context)

address

public IRubyObject address(ThreadContext context)

getAddress

public final long getAddress()
Gets the native memory address of this pointer.

Returns:
A long containing the native memory address.

slice

protected AbstractMemory slice(Ruby runtime,
                               long offset)
Specified by:
slice in class AbstractMemory

getPointer

protected Pointer getPointer(Ruby runtime,
                             long offset)
Specified by:
getPointer in class AbstractMemory


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