public interface Memory
This abstracts read/write operations to either a native memory area, or a java ByteBuffer.
| Modifier and Type | Method and Description |
|---|---|
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.
|
DirectMemory |
getMemory(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. an ascii or utf-8 string)
|
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.
|
boolean |
isDirect()
Checks if the memory area is a native memory pointer.
|
boolean |
isNull()
Checks if the memory area is NULL.
|
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 |
putAddress(long offset,
Memory 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 |
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.
|
Memory |
slice(long offset)
Creates a new MemoryIO pointing to a subset of the memory area of this
MemoryIO.
|
boolean isNull()
boolean isDirect()
Memory slice(long offset)
offset - The offset within the existing memory area to start the
new MemoryIO at.byte getByte(long offset)
offset - The offset within the memory area to read the value.short getShort(long offset)
offset - The offset within the memory area to read the value.int getInt(long offset)
offset - The offset within the memory area to read the value.long getLong(long offset)
offset - The offset within the memory area to read the value.long getNativeLong(long offset)
A 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.
offset - The offset within the memory area to read the value.float getFloat(long offset)
offset - The offset within the memory area to read the value.double getDouble(long offset)
offset - The offset within the memory area to read the value.long getAddress(long offset)
offset - The offset within the memory area to read the value.DirectMemory getMemory(long offset)
offset - The offset within the memory area to read the value.byte[] getZeroTerminatedByteArray(long offset)
offset - The offset within the memory area of the start of the string.void putByte(long offset,
byte value)
offset - The offset within the memory area to write the value.value - The 8 bit integer value to write to the memory location.void putShort(long offset,
short value)
offset - The offset within the memory area to write the value.value - The 16 bit integer value to write to the memory location.void putInt(long offset,
int value)
offset - The offset within the memory area to write the value.value - The 32 bit integer value to write to the memory location.void putLong(long offset,
long value)
offset - The offset within the memory area to write the value.value - The 64 bit integer value to write to the memory location.void putNativeLong(long offset,
long value)
offset - The offset within the memory area to write the value.value - The native long integer value to write to the memory location.void putFloat(long offset,
float value)
offset - The offset within the memory area to write the value.value - The 32 bit float value to write to the memory location.void putDouble(long offset,
double value)
offset - The offset within the memory area to write the value.value - The 64 bit float value to write to the memory location.void putAddress(long offset,
Memory value)
offset - The offset within the memory area to write the value.value - The pointer value to write to the memory location.void putAddress(long offset,
long value)
offset - The offset within the memory area to write the value.value - The pointer value to write to the memory location.void putZeroTerminatedByteArray(long offset,
byte[] bytes,
int off,
int len)
offset - 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.len - The number of bytes of the byte array to write to the memory area. (not including zero byte)void get(long offset,
byte[] dst,
int off,
int len)
offset - The offset within the memory area to read the bytes.dst - The output byte array to place the data.off - The offset within the byte array to start copying.len - The length of data to read.void put(long offset,
byte[] src,
int off,
int len)
offset - The offset within the memory area to start writing the bytes.src - The byte array to write to the memory area.off - The offset within the byte array to start copying.len - The length of data to write.void get(long offset,
short[] dst,
int off,
int len)
offset - The offset within the memory area to read the shorts.dst - The output array to place the data in.off - The offset within the array to start copying.len - The number of shorts to read.void put(long offset,
short[] src,
int off,
int len)
offset - The offset within the memory area to start writing the shorts.src - The array to write to the memory area.off - The offset within the array to start copying.len - The number of shorts to write.void get(long offset,
int[] dst,
int off,
int len)
offset - The offset within the memory area to read the ints.dst - The output array to place the data in.off - The offset within the array to start copying.len - The number of ints to read.void put(long offset,
int[] src,
int off,
int len)
offset - The offset within the memory area to start writing the ints.src - The array to write to the memory area.off - The offset within the array to start copying.len - The number of ints to write.void get(long offset,
long[] dst,
int off,
int len)
offset - The offset within the memory area to read the longs.dst - The output array to place the data in.off - The offset within the array to start copying.len - The number of longs to read.void put(long offset,
long[] src,
int off,
int len)
offset - The offset within the memory area to start writing the longs.src - The array to write to the memory area.off - The offset within the array to start copying.len - The number of longs to write.void get(long offset,
float[] dst,
int off,
int len)
offset - The offset within the memory area to read the floats.dst - The output array to place the data in.off - The offset within the array to start copying.len - The number of floats to read.void put(long offset,
float[] src,
int off,
int len)
offset - The offset within the memory area to start writing the floats.src - The array to write to the memory area.off - The offset within the array to start copying.len - The number of floats to write.void get(long offset,
double[] dst,
int off,
int len)
offset - The offset within the memory area to read the doubles.dst - The output array to place the data in.off - The offset within the array to start copying.len - The number of doubles to read.void put(long offset,
double[] src,
int off,
int len)
offset - The offset within the memory area to start writing the doubles.src - The array to write to the memory area.off - The offset within the array to start copying.len - The number of doubles to write.int indexOf(long offset,
byte value)
offset - The offset within the memory area to start searching.value - The value to search for.int indexOf(long offset,
byte value,
int maxlen)
offset - The offset within the memory area to start searching.value - The value to search for.void setMemory(long offset,
long size,
byte value)
offset - The offset within the memory area to start writing.size - The number of bytes to set to the value.value - The value to set each byte to.