org.jruby.ext.ffi
Class StructLayout

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.StructLayout
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType

public final class StructLayout
extends Type

Defines the memory layout for a native structure.

See Also:
Serialized Form

Nested Class Summary
static class StructLayout.ArrayField
           
static class StructLayout.ArrayProxy
           
static class StructLayout.CharArrayProxy
           
static class StructLayout.EnumField
           
static class StructLayout.Field
           
static class StructLayout.FunctionField
           
static class StructLayout.InnerStructField
           
static class StructLayout.MappedField
           
static class StructLayout.Member
          A struct member.
static class StructLayout.NumberField
           
static class StructLayout.PointerField
           
static interface StructLayout.Storage
           
 
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
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer
 
Field Summary
 
Fields inherited from class org.jruby.ext.ffi.Type
alignment, nativeType, size
 
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
 
Method Summary
 IRubyObject aref(ThreadContext context, IRubyObject fieldName)
           
static RubyClass createStructLayoutClass(Ruby runtime, RubyModule module)
          Registers the StructLayout class in the JRuby runtime.
 IRubyObject fields(ThreadContext context)
           
 IRubyObject get(ThreadContext context, IRubyObject ptr, IRubyObject name)
          Gets the value of the struct member corresponding to name.
 int getFieldCount()
           
 java.util.Collection<StructLayout.Field> getFields()
           
 java.util.Collection<StructLayout.Member> getMembers()
           
 int getSize()
           
 IRubyObject members(ThreadContext context)
          Gets a ruby array of the names of all members of this struct.
static IRubyObject newStructLayout(ThreadContext context, IRubyObject klass, IRubyObject[] args)
           
 IRubyObject offsets(ThreadContext context)
          Gets a ruby array of the offsets of all members of this struct.
 IRubyObject put(ThreadContext context, IRubyObject ptr, IRubyObject name, IRubyObject value)
          Sets the native value of the struct member corresponding to name.
 
Methods inherited from class org.jruby.ext.ffi.Type
alignment, createTypeClass, getNativeAlignment, getNativeSize, getNativeType, getTypeClass, size
 
Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, convertToType, createObjectClass, eqlInternal, equalInternal, equals, getNativeTypeIndex, hashCode, 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, eql, 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_equal, 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
 

Method Detail

createStructLayoutClass

public static RubyClass createStructLayoutClass(Ruby runtime,
                                                RubyModule module)
Registers the StructLayout class in the JRuby runtime.

Parameters:
runtime - The JRuby runtime to register the new class in.
Returns:
The new class

newStructLayout

public static final IRubyObject newStructLayout(ThreadContext context,
                                                IRubyObject klass,
                                                IRubyObject[] args)

get

public IRubyObject get(ThreadContext context,
                       IRubyObject ptr,
                       IRubyObject name)
Gets the value of the struct member corresponding to name.

Parameters:
ptr - The address of the structure in memory.
name - The name of the member.
Returns:
A ruby value for the native value of the struct member.

put

public IRubyObject put(ThreadContext context,
                       IRubyObject ptr,
                       IRubyObject name,
                       IRubyObject value)
Sets the native value of the struct member corresponding to name.

Parameters:
ptr - The address of the structure in memory.
name - The name of the member.
Returns:
A ruby value for the native value of the struct member.

members

public IRubyObject members(ThreadContext context)
Gets a ruby array of the names of all members of this struct.

Returns:
a RubyArray containing the names of all members.

offsets

public IRubyObject offsets(ThreadContext context)
Gets a ruby array of the offsets of all members of this struct.

Returns:
a RubyArray containing the offsets of all members.

aref

public IRubyObject aref(ThreadContext context,
                        IRubyObject fieldName)

fields

public IRubyObject fields(ThreadContext context)

getSize

public final int getSize()

getFieldCount

public final int getFieldCount()

getFields

public final java.util.Collection<StructLayout.Field> getFields()

getMembers

public final java.util.Collection<StructLayout.Member> getMembers()


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