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 classstatic classstatic final classstatic final classstatic classstatic final classstatic final classstatic final classA struct member.static final classstatic final classstatic interfaceNested classes/interfaces inherited from class org.jruby.ext.ffi.Type
Type.Array, Type.BuiltinNested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.DataNested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer -
Field Summary
Fields inherited from class org.jruby.ext.ffi.Type
alignment, nativeType, sizeFields inherited from class org.jruby.RubyObject
IVAR_INSPECTING_OBJECT_ALLOCATOR, OBJECT_ALLOCATOR, REIFYING_OBJECT_ALLOCATORFields 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, varTableStampFields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY -
Method Summary
Modifier and TypeMethodDescriptionaref(ThreadContext context, IRubyObject fieldName) static RubyClasscreateStructLayoutClass(ThreadContext context, RubyModule FFI, RubyClass Object, RubyModule Enumerable, RubyClass Type, RubyClass Struct) booleanThis 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 intfinal Collection<StructLayout.Field> final Collection<StructLayout.Member> final intgetSize()inthashCode()This override does not do "checked" dispatch since Object usually has #hash defined.final booleanisUnion()members(ThreadContext context) Gets a ruby array of the names of all members of this struct.static final IRubyObjectnewStructLayout(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, sizeMethods 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, toStringMethods 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, yieldUnderMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods 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
RubyArraycontaining the names of all members.
-
offsets
Gets a ruby array of the offsets of all members of this struct.- Returns:
- a
RubyArraycontaining the offsets of all members.
-
offset_of
-
aref
-
fields
-
union_bang
-
equals
Description copied from class:RubyObjectThis override does not do a "checked" dispatch.- Overrides:
equalsin classRubyObject- Parameters:
o- object to compare- Returns:
- true if equals
- See Also:
-
hashCode
public int hashCode()Description copied from class:RubyObjectThis override does not do "checked" dispatch since Object usually has #hash defined.- Overrides:
hashCodein classRubyObject- Returns:
- the hash code
- See Also:
-
getSize
public final int getSize() -
getFieldCount
public final int getFieldCount() -
getFields
-
getMembers
-
isUnion
public final boolean isUnion()
-