Package org.jruby.ext.ffi
Class Struct
java.lang.Object
org.jruby.RubyBasicObject
org.jruby.RubyObject
org.jruby.ext.ffi.MemoryObject
org.jruby.ext.ffi.Struct
- All Implemented Interfaces:
Serializable,Cloneable,Comparable<IRubyObject>,StructLayout.Storage,InstanceVariables,InternalVariables,IRubyObject,CoreObjectType
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.DataNested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StructLayoutprivate AbstractMemoryprivate Object[]private static final AtomicReferenceFieldUpdater<Struct,Object[]> private IRubyObject[]private static final AtomicReferenceFieldUpdater<Struct,IRubyObject[]> Fields 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, UNTRUST_F, 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 -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new StructLayout instance using defaults.Creates a new StructLayout instance.Struct(Ruby runtime, RubyClass klass, StructLayout layout, IRubyObject memory) Creates a new StructLayout instance. -
Method Summary
Modifier and TypeMethodDescriptionalignment(ThreadContext context) static IRubyObjectalignment(ThreadContext context, IRubyObject structClass) static IRubyObjectallocateIn(ThreadContext context, IRubyObject klass) static IRubyObjectallocateIn(ThreadContext context, IRubyObject klass, IRubyObject clearArg) static IRubyObjectallocateInOut(ThreadContext context, IRubyObject klass) static IRubyObjectallocateInOut(ThreadContext context, IRubyObject klass, IRubyObject clearArg) protected final MemoryIOstatic IRubyObjectallocateOut(ThreadContext context, IRubyObject klass) static IRubyObjectallocateOut(ThreadContext context, IRubyObject klass, IRubyObject clearArg) private static final StructallocateStruct(ThreadContext context, IRubyObject klass, int flags) clear(ThreadContext context) static RubyClasscreateStructClass(Ruby runtime, RubyModule module) Registers the StructLayout class in the JRuby runtime.final IRubyObjectgetCachedValue(StructLayout.Member member) getFieldValue(ThreadContext context, IRubyObject fieldName) getLayout(ThreadContext context) final AbstractMemoryprivate Object[](package private) static final StructLayoutgetStructLayout(Ruby runtime, IRubyObject structClass) (package private) static final intgetStructSize(Ruby runtime, IRubyObject structClass) private IRubyObject[]initialize(ThreadContext context) initialize(ThreadContext context, IRubyObject ptr) initialize(ThreadContext context, IRubyObject[] args) initialize_copy(ThreadContext context, IRubyObject other) private Object[]private IRubyObject[](package private) static final booleanmembers(ThreadContext context) static IRubyObjectmembers(ThreadContext context, IRubyObject structClass) null_p(ThreadContext context) offset_of(ThreadContext context, IRubyObject fieldName) static IRubyObjectoffset_of(ThreadContext context, IRubyObject structClass, IRubyObject fieldName) offsets(ThreadContext context) static IRubyObjectoffsets(ThreadContext context, IRubyObject structClass) final IRubyObjectorder(ThreadContext context) final IRubyObjectorder(ThreadContext context, IRubyObject byte_order) pointer(ThreadContext context) final voidputCachedValue(StructLayout.Member member, IRubyObject value) voidputReference(StructLayout.Member member, Object value) static IRubyObjectset_layout(ThreadContext context, IRubyObject structClass, IRubyObject layout) setFieldValue(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) size(ThreadContext context) static IRubyObjectsize(ThreadContext context, IRubyObject structClass) values(ThreadContext context) Methods inherited from class org.jruby.ext.ffi.MemoryObject
getMemoryIO, setMemoryIOMethods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, createObjectClass, dig, dig1, dig2, eqlInternal, equalInternal, equals, getNativeClassIndex, hashCode, inspect, op_eqq, puts, specificEval, toRubyString, toStringMethods inherited from class org.jruby.RubyBasicObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkCallMethod, checkFrozen, checkStringType, checkStringType19, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataGetStructChecked, dataWrapStruct, decode, display, dup, ensureInstanceVariablesSettable, eql, eql_p, equal_p, equal_p19, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, freeze, frozen_p, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMetaClass, getMetaClass, getNativeHandle, getNativeTypeIndex, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getSingletonClassCloneAndAttach, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInstanceVariables, hasInternalVariable, hasVariables, id, infectBy, initialize_copy, initialize19, 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, isSpecialConst, isSpecialObject, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, method, method_missing, method_missing19, method19, methods, methods, methods19, nil_p, nonFixnumHashCode, OBJ_INIT_COPY, objInitCopy, op_cmp, op_equal, op_equal_19, op_match, op_match19, op_not, op_not_equal, op_not_match, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, rbClone, rbClone, rbInspect, 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, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setNativeHandle, setTaint, setUntrusted, setVariable, singleton_method, singleton_method_added, singleton_method_added19, singleton_method_removed, singleton_method_removed19, singleton_method_undefined, singleton_method_undefined19, singleton_methods, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, to_s, toJava, trust, type, type_deprecated, untaint, untrust, untrusted_p, validateInstanceVariable, validateInstanceVariable, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableRemove, variableTableStore, variableTableSync, yieldUnder, yieldUnder
-
Field Details
-
layout
-
memory
-
referenceCache
-
valueCache
-
valueCacheUpdater
-
referenceCacheUpdater
-
-
Constructor Details
-
Struct
Struct(Ruby runtime) Creates a new StructLayout instance using defaults.- Parameters:
runtime- The runtime for the StructLayout
-
Struct
Creates a new StructLayout instance.- Parameters:
runtime- The runtime for the StructLayoutklass- the ruby class to use for the StructLayout
-
Struct
Struct(Ruby runtime, RubyClass klass, StructLayout layout, IRubyObject memory) Creates a new StructLayout instance.- Parameters:
runtime- The runtime for the StructLayoutklass- the ruby class to use for the StructLayout
-
-
Method Details
-
createStructClass
Registers the StructLayout class in the JRuby runtime.- Parameters:
runtime- The JRuby runtime to register the new class in.- Returns:
- The new class
-
isStruct
-
getStructSize
-
getStructLayout
-
initialize
- Overrides:
initializein classRubyBasicObject
-
initialize
-
initialize
-
initialize_copy
-
allocateStruct
-
allocateIn
-
allocateIn
public static IRubyObject allocateIn(ThreadContext context, IRubyObject klass, IRubyObject clearArg) -
allocateOut
-
allocateOut
public static IRubyObject allocateOut(ThreadContext context, IRubyObject klass, IRubyObject clearArg) -
allocateInOut
-
allocateInOut
public static IRubyObject allocateInOut(ThreadContext context, IRubyObject klass, IRubyObject clearArg) -
size
-
alignment
-
set_layout
public static IRubyObject set_layout(ThreadContext context, IRubyObject structClass, IRubyObject layout) -
members
-
offsets
-
offset_of
public static IRubyObject offset_of(ThreadContext context, IRubyObject structClass, IRubyObject fieldName) -
getFieldValue
-
setFieldValue
public IRubyObject setFieldValue(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) -
getLayout
-
pointer
-
members
-
values
-
offsets
-
offset_of
-
size
-
alignment
-
null_p
-
order
-
order
-
clear
-
getMemory
-
allocateMemoryIO
- Specified by:
allocateMemoryIOin classMemoryObject
-
getCachedValue
- Specified by:
getCachedValuein interfaceStructLayout.Storage
-
putCachedValue
- Specified by:
putCachedValuein interfaceStructLayout.Storage
-
getValueCacheForWrite
-
initValueCache
-
getReferenceCache
-
initReferenceCache
-
putReference
- Specified by:
putReferencein interfaceStructLayout.Storage
-