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
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, 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
Constructors -
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) clear(ThreadContext context) static RubyClasscreateStructClass(ThreadContext context, RubyModule FFI) Registers the StructLayout class in the JRuby runtime.final IRubyObjectgetCachedValue(StructLayout.Member member) getFieldValue(ThreadContext context, IRubyObject fieldName) getLayout(ThreadContext context) final AbstractMemoryinitialize(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 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, dig, dig1, dig2, eqlInternal, equalInternal, equals, finishObjectClass, getNativeClassIndex, hashCode, 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_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
-
Constructor Details
-
Struct
Creates a newStructLayoutinstance.- Parameters:
runtime- The runtime for theStructLayoutklass- 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:
initializein classRubyBasicObject
-
initialize
-
initialize
-
initialize_copy
Description copied from class:RubyBasicObjectInitializes 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_copyin 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:
allocateMemoryIOin classMemoryObject
-
getCachedValue
- Specified by:
getCachedValuein interfaceStructLayout.Storage
-
putCachedValue
- Specified by:
putCachedValuein interfaceStructLayout.Storage
-
putReference
- Specified by:
putReferencein interfaceStructLayout.Storage
-