@JRubyMethod(name = { "pointer", "to_ptr" }) public IRubyObject pointer(ThreadContext context) { return getMemory(); }
public static IRubyObject other2ptr(ThreadContext context, IRubyObject parameter) { if (parameter instanceof Struct) { return ((Struct) parameter).getMemory(); } else if (parameter instanceof RubyString || parameter instanceof Buffer || parameter.isNil()) { // Cannot be converted to a Pointer instance, let the asm code check it return parameter; } return convert2ptr(context, parameter); }
public static IRubyObject other2ptr(ThreadContext context, IRubyObject parameter) { if (parameter instanceof Struct) { return ((Struct) parameter).getMemory(); } else if (parameter instanceof RubyString || parameter instanceof Buffer || parameter.isNil()) { // Cannot be converted to a Pointer instance, let the asm code check it return parameter; } return convert2ptr(context, parameter); }
public static IRubyObject other2ptr(ThreadContext context, IRubyObject parameter) { if (parameter instanceof Struct) { return ((Struct) parameter).getMemory(); } else if (parameter instanceof RubyString || parameter instanceof Buffer || parameter.isNil()) { // Cannot be converted to a Pointer instance, let the asm code check it return parameter; } return convert2ptr(context, parameter); }
public static IRubyObject other2ptr(ThreadContext context, IRubyObject parameter) { if (parameter instanceof Struct) { return ((Struct) parameter).getMemory(); } else if (parameter instanceof RubyString || parameter instanceof Buffer || parameter.isNil()) { // Cannot be converted to a Pointer instance, let the asm code check it return parameter; } return convert2ptr(context, parameter); }
@JRubyMethod(name = "[]=") public IRubyObject setFieldValue(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) { layout.getMember(context.runtime, fieldName).put(context, this, getMemory(), fieldValue); return fieldValue; }
@JRubyMethod(name = "[]=") public IRubyObject setFieldValue(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) { layout.getMember(context.runtime, fieldName).put(context, this, getMemory(), fieldValue); return fieldValue; }
@JRubyMethod(name = "[]=") public IRubyObject setFieldValue(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) { layout.getMember(context.runtime, fieldName).put(context, this, getMemory(), fieldValue); return fieldValue; }
@JRubyMethod(name = "[]") public IRubyObject getFieldValue(ThreadContext context, IRubyObject fieldName) { return layout.getMember(context.runtime, fieldName).get(context, this, getMemory()); }
@JRubyMethod(name = "[]=") public IRubyObject setFieldValue(ThreadContext context, IRubyObject fieldName, IRubyObject fieldValue) { layout.getMember(context.runtime, fieldName).put(context, this, getMemory(), fieldValue); return fieldValue; }
@JRubyMethod(name="null?") public IRubyObject null_p(ThreadContext context) { return context.runtime.newBoolean(getMemory().getMemoryIO().isNull()); }
@JRubyMethod(name = "order", required = 1) public final IRubyObject order(ThreadContext context, IRubyObject byte_order) { ByteOrder order = Util.parseByteOrder(context.runtime, byte_order); return new Struct(context.runtime, getMetaClass(), layout, getMemory().order(context.runtime, order)); }
@JRubyMethod(name = "to_native") public IRubyObject to_native(ThreadContext context, IRubyObject value, IRubyObject ctx) { if (value instanceof Struct && structClass.isInstance(value)) { return ((Struct) value).getMemory(); } else if (value.isNil()) { return Pointer.getNull(context.runtime); } else { throw context.runtime.newTypeError(value, structClass); } }
@JRubyMethod(name = "values") public IRubyObject values(ThreadContext context) { IRubyObject[] values = new IRubyObject[layout.getFieldCount()]; int i = 0; for (StructLayout.Member m : layout.getMembers()) { values[i++] = m.get(context, this, getMemory()); } return RubyArray.newArrayMayCopy(context.runtime, values); }
@JRubyMethod(name = "order", required = 1) public final IRubyObject order(ThreadContext context, IRubyObject byte_order) { ByteOrder order = Util.parseByteOrder(context.runtime, byte_order); return new Struct(context.runtime, getMetaClass(), layout, getMemory().order(context.runtime, order)); }
@JRubyMethod(name = "to_native") public IRubyObject to_native(ThreadContext context, IRubyObject value, IRubyObject ctx) { if (value instanceof Struct && structClass.isInstance(value)) { return ((Struct) value).getMemory(); } else if (value.isNil()) { return Pointer.getNull(context.runtime); } else { throw context.runtime.newTypeError(value, structClass); } }
@JRubyMethod(name = "values") public IRubyObject values(ThreadContext context) { IRubyObject[] values = new IRubyObject[layout.getFieldCount()]; int i = 0; for (StructLayout.Member m : layout.getMembers()) { values[i++] = m.get(context, this, getMemory()); } return RubyArray.newArrayNoCopy(context.runtime, values); }
@JRubyMethod(name = "order", required = 1) public final IRubyObject order(ThreadContext context, IRubyObject byte_order) { ByteOrder order = Util.parseByteOrder(context.runtime, byte_order); return new Struct(context.runtime, getMetaClass(), layout, getMemory().order(context.runtime, order)); }
@JRubyMethod(name = "to_native") public IRubyObject to_native(ThreadContext context, IRubyObject value, IRubyObject ctx) { if (value instanceof Struct && structClass.isInstance(value)) { return ((Struct) value).getMemory(); } else if (value.isNil()) { return Pointer.getNull(context.runtime); } else { throw context.runtime.newTypeError(value, structClass); } }
@JRubyMethod(name = "values") public IRubyObject values(ThreadContext context) { IRubyObject[] values = new IRubyObject[layout.getFieldCount()]; int i = 0; for (StructLayout.Member m : layout.getMembers()) { values[i++] = m.get(context, this, getMemory()); } return RubyArray.newArrayMayCopy(context.runtime, values); }