public final class ArrayMemoryIO extends MemoryIO
| Modifier and Type | Class and Description |
|---|---|
protected static class |
ArrayMemoryIO.ArrayIO |
| Modifier and Type | Field and Description |
|---|---|
protected static int |
ADDRESS_SIZE |
protected byte[] |
buffer |
protected static ArrayMemoryIO.ArrayIO |
IO |
protected int |
length |
protected static int |
LONG_SIZE |
protected int |
offset |
protected Ruby |
runtime |
| Constructor and Description |
|---|
ArrayMemoryIO(Ruby runtime,
byte[] buffer,
int offset,
int length) |
ArrayMemoryIO(Ruby runtime,
int size) |
| Modifier and Type | Method and Description |
|---|---|
byte[] |
array() |
int |
arrayLength() |
int |
arrayOffset() |
ByteBuffer |
asByteBuffer()
Creates a view of this memory object as a java NIO byte buffer.
|
void |
clear() |
ArrayMemoryIO |
dup()
Duplicates this MemoryIO, including its contents.
|
void |
get(long offset,
byte[] dst,
int off,
int len)
Reads an array of bytes from the memory area at the specified offset.
|
void |
get(long offset,
double[] dst,
int off,
int len)
Reads an array of doubles from the memory area at the specified offset.
|
void |
get(long offset,
float[] dst,
int off,
int len)
Reads an array of floats from the memory area at the specified offset.
|
void |
get(long offset,
int[] dst,
int off,
int len)
Reads an array of ints from the memory area at the specified offset.
|
void |
get(long offset,
long[] dst,
int off,
int len)
Reads an array of longs from the memory area at the specified offset.
|
void |
get(long offset,
short[] dst,
int off,
int len)
Reads an array of shorts from the memory area at the specified offset.
|
long |
getAddress(long offset)
Reads a pointer value at the specified offset within the memory area.
|
byte |
getByte(long offset)
Reads an 8 bit integer value from the memory area.
|
double |
getDouble(long offset)
Reads a double value from the memory area.
|
float |
getFloat(long offset)
Reads a float value from the memory area.
|
int |
getInt(long offset)
Reads a 32 bit integer value from the memory area.
|
long |
getLong(long offset)
Reads a 64 bit integer value from the memory area.
|
MemoryIO |
getMemoryIO(long offset)
Reads a pointer value at the specified offset within the memory area, and
wraps it in an abstract memory accessor.
|
long |
getNativeLong(long offset)
Reads a native long integer value from the memory area.
|
short |
getShort(long offset)
Reads a 16 bit integer value from the memory area.
|
byte[] |
getZeroTerminatedByteArray(long offset)
Reads a zero terminated byte array (e.g.
|
byte[] |
getZeroTerminatedByteArray(long offset,
int maxlen)
Reads a zero terminated byte array (e.g.
|
protected int |
index(long off) |
int |
indexOf(long offset,
byte value)
Gets the first index within the memory area of a particular 8 bit value.
|
int |
indexOf(long offset,
byte value,
int maxlen)
Gets the first index within the memory area of a particular 8 bit value.
|
ByteOrder |
order()
Gets the
ByteOrder this MemoryIO instance will read/write
values to memory in. |
void |
put(long offset,
byte[] src,
int off,
int len)
Writes an array of bytes to the memory area at the specified offset.
|
void |
put(long offset,
double[] src,
int off,
int len)
Writes an array of doubles to the memory area at the specified offset.
|
void |
put(long offset,
float[] src,
int off,
int len)
Writes an array of floats to the memory area at the specified offset.
|
void |
put(long offset,
int[] src,
int off,
int len)
Writes an array of ints to the memory area at the specified offset.
|
void |
put(long offset,
long[] src,
int off,
int len)
Writes an array of longs to the memory area at the specified offset.
|
void |
put(long offset,
short[] src,
int off,
int len)
Writes an array of shorts to the memory area at the specified offset.
|
void |
putAddress(long offset,
long value)
Writes a pointer value to the memory area at the specified offset.
|
void |
putByte(long offset,
byte value)
Writes an 8 bit integer value to the memory area at the specified offset.
|
void |
putDouble(long offset,
double value)
Writes a 64 bit float value to the memory area at the specified offset.
|
void |
putFloat(long offset,
float value)
Writes a 32 bit float value to the memory area at the specified offset.
|
void |
putInt(long offset,
int value)
Writes a 32 bit integer value to the memory area at the specified offset.
|
void |
putLong(long offset,
long value)
Writes a 64 bit integer value to the memory area at the specified offset.
|
void |
putMemoryIO(long offset,
MemoryIO value)
Writes a pointer value to the memory area at the specified offset.
|
void |
putNativeLong(long offset,
long value)
Writes a native long integer value to the memory area at the specified offset.
|
void |
putShort(long offset,
short value)
Writes a 16 bit integer value to the memory area at the specified offset.
|
void |
putZeroTerminatedByteArray(long offset,
byte[] bytes,
int off,
int len)
Writes a byte array to memory, and appends a zero terminator
|
void |
setMemory(long offset,
long size,
byte value)
Sets the contents of the memory area to the value.
|
ArrayMemoryIO |
slice(long offset)
Creates a new MemoryIO pointing to a subset of the memory area of this
MemoryIO.
|
ArrayMemoryIO |
slice(long offset,
long size)
Creates a new MemoryIO pointing to a subset of the memory area of this
MemoryIO.
|
protected static final ArrayMemoryIO.ArrayIO IO
protected static final int LONG_SIZE
protected static final int ADDRESS_SIZE
protected final Ruby runtime
protected final byte[] buffer
protected final int offset
protected final int length
public ArrayMemoryIO(Ruby runtime, byte[] buffer, int offset, int length)
public ArrayMemoryIO(Ruby runtime, int size)
public final int arrayOffset()
arrayOffset in class MemoryIOpublic final int arrayLength()
arrayLength in class MemoryIOprotected final int index(long off)
public final ByteOrder order()
MemoryIOByteOrder this MemoryIO instance will read/write
values to memory in.public ArrayMemoryIO slice(long offset)
MemoryIOpublic ArrayMemoryIO slice(long offset, long size)
MemoryIOpublic ArrayMemoryIO dup()
MemoryIOpublic ByteBuffer asByteBuffer()
MemoryIOasByteBuffer in class MemoryIOpublic final MemoryIO getMemoryIO(long offset)
MemoryIOgetMemoryIO in class MemoryIOoffset - The offset within the memory area to read the value.public final void putMemoryIO(long offset,
MemoryIO value)
MemoryIOputMemoryIO in class MemoryIOoffset - The offset within the memory area to write the value.value - The pointer value to write to the memory location.public final byte getByte(long offset)
MemoryIOpublic final short getShort(long offset)
MemoryIOpublic final int getInt(long offset)
MemoryIOpublic final long getLong(long offset)
MemoryIOpublic final long getNativeLong(long offset)
MemoryIOA native long is 32bits on either ILP32 or LLP64 architectures, and 64 bits on an LP64 architecture.
This means that it will always read a 32bit value on Windows, but on Unix systems such as MacOS or Linux, it will read a 32bit value on 32bit systems, and a 64bit value on 64bit systems.
getNativeLong in class MemoryIOoffset - The offset within the memory area to read the value.public final float getFloat(long offset)
MemoryIOpublic final double getDouble(long offset)
MemoryIOpublic final long getAddress(long offset)
MemoryIOgetAddress in class MemoryIOoffset - The offset within the memory area to read the value.public final void putByte(long offset,
byte value)
MemoryIOpublic final void putShort(long offset,
short value)
MemoryIOpublic final void putInt(long offset,
int value)
MemoryIOpublic final void putLong(long offset,
long value)
MemoryIOpublic final void putNativeLong(long offset,
long value)
MemoryIOputNativeLong in class MemoryIOoffset - The offset within the memory area to write the value.value - The native long integer value to write to the memory location.public final void putFloat(long offset,
float value)
MemoryIOpublic final void putDouble(long offset,
double value)
MemoryIOpublic final void putAddress(long offset,
long value)
MemoryIOputAddress in class MemoryIOoffset - The offset within the memory area to write the value.value - The pointer value to write to the memory location.public final void get(long offset,
byte[] dst,
int off,
int len)
MemoryIOpublic final void put(long offset,
byte[] src,
int off,
int len)
MemoryIOpublic final void get(long offset,
short[] dst,
int off,
int len)
MemoryIOpublic final void put(long offset,
short[] src,
int off,
int len)
MemoryIOpublic final void get(long offset,
int[] dst,
int off,
int len)
MemoryIOpublic final void put(long offset,
int[] src,
int off,
int len)
MemoryIOpublic final void get(long offset,
long[] dst,
int off,
int len)
MemoryIOpublic final void put(long offset,
long[] src,
int off,
int len)
MemoryIOpublic final void get(long offset,
float[] dst,
int off,
int len)
MemoryIOpublic final void put(long offset,
float[] src,
int off,
int len)
MemoryIOpublic final void get(long offset,
double[] dst,
int off,
int len)
MemoryIOpublic final void put(long offset,
double[] src,
int off,
int len)
MemoryIOpublic final int indexOf(long offset,
byte value)
MemoryIOpublic final int indexOf(long offset,
byte value,
int maxlen)
MemoryIOpublic final void setMemory(long offset,
long size,
byte value)
MemoryIOpublic final byte[] getZeroTerminatedByteArray(long offset)
MemoryIOgetZeroTerminatedByteArray in class MemoryIOoffset - The offset within the memory area of the start of the string.public final byte[] getZeroTerminatedByteArray(long offset,
int maxlen)
MemoryIOgetZeroTerminatedByteArray in class MemoryIOoffset - The offset within the memory area of the start of the string.maxlen - The maximum length to search for the zero byte terminator.public void putZeroTerminatedByteArray(long offset,
byte[] bytes,
int off,
int len)
MemoryIOputZeroTerminatedByteArray in class MemoryIOoffset - The offset within the memory area of the start of the string.bytes - The byte array to write to the memory.off - The offset with the byte array to start copying.public final void clear()
Copyright © 2001-2015 JRuby. All Rights Reserved.