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.Data
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer
-
Field Summary
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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionalignment
(ThreadContext context) static IRubyObject
alignment
(ThreadContext context, IRubyObject structClass) static IRubyObject
allocateIn
(ThreadContext context, IRubyObject klass) static IRubyObject
allocateIn
(ThreadContext context, IRubyObject klass, IRubyObject clearArg) static IRubyObject
allocateInOut
(ThreadContext context, IRubyObject klass) static IRubyObject
allocateInOut
(ThreadContext context, IRubyObject klass, IRubyObject clearArg) protected final MemoryIO
static IRubyObject
allocateOut
(ThreadContext context, IRubyObject klass) static IRubyObject
allocateOut
(ThreadContext context, IRubyObject klass, IRubyObject clearArg) clear
(ThreadContext context) static RubyClass
createStructClass
(ThreadContext context, RubyModule FFI) Registers the StructLayout class in the JRuby runtime.final IRubyObject
getCachedValue
(StructLayout.Member member) getFieldValue
(ThreadContext context, IRubyObject fieldName) getLayout
(ThreadContext context) final AbstractMemory
initialize
(ThreadContext context) initialize
(ThreadContext context, IRubyObject ptr) initialize
(ThreadContext context, IRubyObject[] args) initialize_copy
(ThreadContext context, IRubyObject other) Initializes this object as a copy of the original, that is the parameter to this object.members
(ThreadContext context) static IRubyObject
members
(ThreadContext context, IRubyObject structClass) null_p
(ThreadContext context) offset_of
(ThreadContext context, IRubyObject fieldName) static IRubyObject
offset_of
(ThreadContext context, IRubyObject structClass, IRubyObject fieldName) offsets
(ThreadContext context) static IRubyObject
offsets
(ThreadContext context, IRubyObject structClass) final IRubyObject
order
(ThreadContext context) final IRubyObject
order
(ThreadContext context, IRubyObject byte_order) pointer
(ThreadContext context) final void
putCachedValue
(StructLayout.Member member, IRubyObject value) void
putReference
(StructLayout.Member member, Object value) static IRubyObject
set_layout
(ThreadContext context, IRubyObject structClass, IRubyObject layout) setFieldValue
(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) size
(ThreadContext context) static IRubyObject
size
(ThreadContext context, IRubyObject structClass) values
(ThreadContext context) Methods inherited from class org.jruby.ext.ffi.MemoryObject
getMemoryIO, setMemoryIO
Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, dig, dig1, dig2, eqlInternal, equalInternal, equals, finishObjectClass, getNativeClassIndex, hashCode, 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_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
-
Constructor Details
-
Struct
Creates a newStructLayout
instance.- Parameters:
runtime
- The runtime for theStructLayout
klass
- the ruby class to use for theStructLayout
-
-
Method Details
-
createStructClass
Registers the StructLayout class in the JRuby runtime.- Parameters:
context
- the current thread contextFFI
- reference to FFI module- Returns:
- The new class
-
initialize
- Overrides:
initialize
in classRubyBasicObject
-
initialize
-
initialize
-
initialize_copy
Description copied from class:RubyBasicObject
Initializes this object as a copy of the original, that is the parameter to this object. Will make sure that the argument actually has the same real class as this object. It shouldn't be possible to initialize an object with something totally different.- Overrides:
initialize_copy
in classRubyBasicObject
- Parameters:
context
- the thread contextother
- the original- Returns:
- a copy unless the same thing
-
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:
allocateMemoryIO
in classMemoryObject
-
getCachedValue
- Specified by:
getCachedValue
in interfaceStructLayout.Storage
-
putCachedValue
- Specified by:
putCachedValue
in interfaceStructLayout.Storage
-
putReference
- Specified by:
putReference
in interfaceStructLayout.Storage
-