Package org.jruby.ext.ffi
Class StructLayout
java.lang.Object
org.jruby.RubyBasicObject
org.jruby.RubyObject
org.jruby.ext.ffi.Type
org.jruby.ext.ffi.StructLayout
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable<IRubyObject>
,InstanceVariables
,InternalVariables
,IRubyObject
,CoreObjectType
Defines the memory layout for a native structure.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
static class
static final class
static final class
static class
static final class
static final class
static final class
A struct member.static final class
static final class
static interface
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
IVAR_INSPECTING_OBJECT_ALLOCATOR, 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, IS_OVERLAID_F, metaClass, NEVER, NIL_F, REFINED_MODULE_F, STAMP_OFFSET, TAINTED_F, UNDEF, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, USER8_F, USER9_F, USERA_F, VAR_TABLE_OFFSET, varTable, varTableStamp
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
-
Method Summary
Modifier and TypeMethodDescriptionaref
(ThreadContext context, IRubyObject fieldName) static RubyClass
createStructLayoutClass
(ThreadContext context, RubyModule FFI, RubyClass Object, RubyModule Enumerable, RubyClass Type, RubyClass Struct) boolean
This override does not do a "checked" dispatch.fields
(ThreadContext context) get
(ThreadContext context, IRubyObject ptr, IRubyObject name) Gets the value of the struct member corresponding toname
.final int
final Collection
<StructLayout.Field> final Collection
<StructLayout.Member> final int
getSize()
int
hashCode()
This override does not do "checked" dispatch since Object usually has #hash defined.final boolean
isUnion()
members
(ThreadContext context) Gets a ruby array of the names of all members of this struct.static final IRubyObject
newStructLayout
(ThreadContext context, IRubyObject klass, IRubyObject[] args) offset_of
(ThreadContext context, IRubyObject fieldName) offsets
(ThreadContext context) Gets a ruby array of the offsets of all members of this struct.put
(ThreadContext context, IRubyObject ptr, IRubyObject name, IRubyObject value) Sets the native value of the struct member corresponding toname
.union_bang
(ThreadContext context) 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, callInit, callInit, callInit, callInit, callInit, convertToType, dig, dig1, dig2, eqlInternal, equalInternal, finishObjectClass, getNativeClassIndex, inspect, op_eqq, puts, specificEval, toRubyString, toString
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkCallMethod, checkFrozen, checkStringType, cloneSetup, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, dataGetStruct, dataGetStructChecked, dataWrapStruct, decode, display, dup, dupFinalizer, dupSetup, ensureInstanceVariablesSettable, eql, eql_p, eql_p, equal_p, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, finishBasicObjectClass, forEachInstanceVariable, forEachInstanceVariableName, freeze, frozen_p, getCurrentContext, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMarshalVariableList, getMetaClass, getMetaClass, getNativeHandle, getNativeTypeIndex, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getSingletonClassCloneAndAttach, getSingletonClassCloneAndAttach, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hash, hashyInspect, hasInstanceVariable, hasInstanceVariables, hasInternalVariable, hasVariables, id, infectBy, initialize, initialize_copy, initialize_copy, inspect, inspect, inspectHashCode, 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, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isSpecialConst, isSpecialObject, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, makeMetaClass, makeMetaClassBootstrap, method, method, method, method_missing, methods, methods, nil_p, nonFixnumHashCode, nonFixnumHashCode, OBJ_INIT_COPY, objInitCopy, op_cmp, op_equal, op_match, op_not, op_not_equal, op_not_match, private_methods, protected_methods, public_methods, rbClone, rbClone, rbInspect, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setNativeHandle, setTaint, setUntrusted, setVariable, singleton_method, singleton_method, singleton_method_added, singleton_method_removed, singleton_method_undefined, singleton_methods, singletonClass, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, to_s, to_s, toJava, trust, type, untaint, untrust, untrusted_p, validateInstanceVariable, validateInstanceVariable, 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
Methods inherited from interface org.jruby.runtime.builtin.IRubyObject
checkStringType19, dup, marshalLiveVariables
-
Method Details
-
createStructLayoutClass
public static RubyClass createStructLayoutClass(ThreadContext context, RubyModule FFI, RubyClass Object, RubyModule Enumerable, RubyClass Type, RubyClass Struct) -
newStructLayout
public static final IRubyObject newStructLayout(ThreadContext context, IRubyObject klass, IRubyObject[] args) -
get
Gets the value of the struct member corresponding toname
.- 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
Sets the native value of the struct member corresponding toname
.- 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
Gets a ruby array of the names of all members of this struct.- Returns:
- a
RubyArray
containing the names of all members.
-
offsets
Gets a ruby array of the offsets of all members of this struct.- Returns:
- a
RubyArray
containing the offsets of all members.
-
offset_of
-
aref
-
fields
-
union_bang
-
equals
Description copied from class:RubyObject
This override does not do a "checked" dispatch.- Overrides:
equals
in classRubyObject
- Parameters:
o
- object to compare- Returns:
- true if equals
- See Also:
-
hashCode
public int hashCode()Description copied from class:RubyObject
This override does not do "checked" dispatch since Object usually has #hash defined.- Overrides:
hashCode
in classRubyObject
- Returns:
- the hash code
- See Also:
-
getSize
public final int getSize() -
getFieldCount
public final int getFieldCount() -
getFields
-
getMembers
-
isUnion
public final boolean isUnion()
-