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
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
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, 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, 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, USER8_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.
static Pointer getNull(Ruby runtime)
           
protected  Pointer getPointer(Ruby runtime, long offset)
           
static RubyClass getPointerClass(Ruby runtime)
           
 IRubyObject initialize_copy(ThreadContext context, IRubyObject other)
           
 IRubyObject initialize(ThreadContext context, IRubyObject address)
           
 IRubyObject initialize(ThreadContext context, IRubyObject type, IRubyObject address)
           
 IRubyObject null_p(ThreadContext context)
          Tests if this Pointer represents the C NULL value.
 AbstractMemory order(Ruby runtime, java.nio.ByteOrder order)
           
protected  AbstractMemory slice(Ruby runtime, long offset)
           
protected  AbstractMemory slice(Ruby runtime, long offset, long size)
           
 IRubyObject to_s(ThreadContext context, IRubyObject[] args)
           
 
Methods inherited from class org.jruby.ext.ffi.AbstractMemory
aref, calculateTypeSize, 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_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, getMemoryIO, getOffset, getSize, hash, hashCode, op_equal, op_plus, order, order, 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_uint16, read_array_of_uint32, read_array_of_uint64, read_array_of_uint8, read_array_of_ulong, read_char, read_double, read_float, read_int, read_long_long, read_long, read_pointer, read_short, read_string, read_string, read_uchar, read_uint, read_ulong_long, read_ulong, read_ushort, setMemoryIO, 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_uint16, write_array_of_uint32, write_array_of_uint64, write_array_of_uint8, write_array_of_ulong, write_char, write_double, write_float, write_int, write_long_long, write_long, write_pointer, write_short, write_uchar, write_uint, write_ulong_long, write_ushort
 
Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, convertToType, createObjectClass, eqlInternal, equalInternal, getNativeTypeIndex, initialize, op_eqq, puts, specificEval, toString
 
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkFrozen, checkStringType, checkStringType19, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataGetStructChecked, dataWrapStruct, display, dup, ensureInstanceVariablesSettable, eql_p, equal_p, equal_p19, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, freeze, frozen_p, getFlag, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMetaClass, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInternalVariable, hasVariables, id_deprecated, id, infectBy, initialize_copy, initialize19, initialize19, initialize19, initialize19, initialize19, initObjectId, inspect, inspectHashCode, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval19, instance_eval19, instance_eval19, instance_eval19, instance_exec, instance_exec19, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, instance_variables19, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, method_missing19, method, method19, methods, methods, methods19, nil_p, op_cmp, op_equal_19, op_match, op_match19, op_not_equal, op_not_match, op_not, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, rbClone, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respond_to_p19, respond_to_p19, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, send19, send19, send19, send19, send19, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setTaint, setUntrusted, setVariable, singleton_method_added19, singleton_method_removed19, singleton_method_undefined19, singleton_methods, singleton_methods19, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_s, toJava, trust, type_deprecated, type, untaint, untrust, untrusted_p, 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
 

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)

getNull

public static final Pointer getNull(Ruby runtime)

getPointerClass

public static final RubyClass getPointerClass(Ruby runtime)

order

public final AbstractMemory order(Ruby runtime,
                                  java.nio.ByteOrder order)
Specified by:
order in class AbstractMemory

initialize

public IRubyObject initialize(ThreadContext context,
                              IRubyObject address)

initialize

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

initialize_copy

public IRubyObject initialize_copy(ThreadContext context,
                                   IRubyObject other)

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

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

slice

protected AbstractMemory slice(Ruby runtime,
                               long offset,
                               long size)
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.