public abstract class AbstractArrayMemoryIO extends AbstractMemoryIO
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractArrayMemoryIO.ArrayIO |
| Modifier and Type | Field and Description |
|---|---|
protected byte[] |
buffer |
protected int |
length |
protected int |
offset |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractArrayMemoryIO(Runtime runtime,
byte[] buffer) |
protected |
AbstractArrayMemoryIO(Runtime runtime,
byte[] buffer,
int offset,
int length) |
protected |
AbstractArrayMemoryIO(Runtime runtime,
int size) |
| Modifier and Type | Method and Description |
|---|---|
long |
address()
Gets the native address of this memory object (optional operation).
|
byte[] |
array() |
int |
arrayLength() |
int |
arrayOffset() |
void |
clear() |
void |
get(long offset,
byte[] dst,
int off,
int len)
Bulk get method for multiple
byte values. |
void |
get(long offset,
double[] dst,
int off,
int len)
Bulk get method for multiple
double values. |
void |
get(long offset,
float[] dst,
int off,
int len)
Bulk get method for multiple
float values. |
void |
get(long offset,
int[] dst,
int off,
int len)
Bulk get method for multiple
int values. |
void |
get(long offset,
long[] dst,
int off,
int len)
Bulk get method for multiple
long values. |
void |
get(long offset,
short[] dst,
int off,
int len)
Bulk get method for multiple
short values. |
long |
getAddress(long offset) |
protected AbstractArrayMemoryIO.ArrayIO |
getArrayIO() |
byte |
getByte(long offset)
Reads an
byte (8 bit) value at the given offset. |
double |
getDouble(long offset)
Reads a
double (64 bit) value at the given offset. |
float |
getFloat(long offset)
Reads a
float (32 bit) value at the given offset. |
int |
getInt(long offset)
Reads an
int (32 bit) value at the given offset. |
long |
getLongLong(long offset)
Reads a
long (64 bit) value at the given offset. |
short |
getShort(long offset)
Reads a
short (16 bit) value at the given offset. |
String |
getString(long offset)
Reads an
String value at the given offset. |
String |
getString(long offset,
int maxLength,
Charset cs)
Reads a
String value at the given offset, using a specific Charset |
boolean |
hasArray() |
protected int |
index(long off) |
int |
indexOf(long offset,
byte value)
Returns the location of a byte value within the memory area represented by this
Pointer. |
int |
indexOf(long offset,
byte value,
int maxlen)
Returns the location of a byte value within the memory area represented by this
Pointer. |
boolean |
isDirect()
Indicates whether or not this memory object represents a native memory address.
|
boolean |
isNull() |
int |
length() |
int |
offset() |
void |
put(long offset,
byte[] src,
int off,
int len)
Bulk put method for multiple
byte values. |
void |
put(long offset,
double[] src,
int off,
int len)
Bulk put method for multiple
double values. |
void |
put(long offset,
float[] src,
int off,
int len)
Bulk put method for multiple
float values. |
void |
put(long offset,
int[] src,
int off,
int len)
Bulk put method for multiple
int values. |
void |
put(long offset,
long[] src,
int off,
int len)
Bulk put method for multiple
long values. |
void |
put(long offset,
short[] src,
int off,
int len)
Bulk put method for multiple
short values. |
void |
putAddress(long offset,
long value) |
void |
putByte(long offset,
byte value)
Writes a
byte (8 bit) value at the given offset. |
void |
putDouble(long offset,
double value)
Writes a
double (64 bit, double precision) value at the given offset. |
void |
putFloat(long offset,
float value)
Writes a
float (32 bit, single precision) value at the given offset. |
void |
putInt(long offset,
int value)
Writes an
int (32 bit) value at the given offset. |
void |
putLongLong(long offset,
long value)
Writes a
long (64 bit) value at the given offset. |
void |
putShort(long offset,
short value)
Writes a
short (16 bit) value at the given offset. |
void |
putString(long offset,
String string,
int maxLength,
Charset cs)
Writes a
String value at the given offset, using a specific Charset |
void |
putZeroTerminatedByteArray(long offset,
byte[] src,
int off,
int len) |
protected int |
remaining(long offset) |
void |
setMemory(long offset,
long size,
byte value)
Sets the value of each byte in the memory area represented by this
Pointer. |
long |
size()
Gets the size of this memory object (optional operation).
|
checkBounds, checkBounds, getInt, getLong, getNativeLong, getRuntime, putAddress, putInt, putLong, putNativeLong, slice, slice, transferFrom, transferToget, getNullTerminatedPointerArray, getNullTerminatedStringArray, getPointer, getPointer, newIntPointer, put, putPointer, wrap, wrap, wrapprotected final byte[] buffer
protected final int offset
protected final int length
protected AbstractArrayMemoryIO(Runtime runtime, byte[] buffer, int offset, int length)
protected AbstractArrayMemoryIO(Runtime runtime, byte[] buffer)
protected AbstractArrayMemoryIO(Runtime runtime, int size)
protected final AbstractArrayMemoryIO.ArrayIO getArrayIO()
public final int offset()
public final int length()
public final int arrayLength()
arrayLength in class Pointerpublic final int arrayOffset()
arrayOffset in class Pointerpublic final boolean isDirect()
PointerMemory objects can be either direct (representing native memory), or non-direct (representing java heap memory).
Non-direct memory objects can still be passed to native functions as pointer (void *, char *, etc) parameters, but the java memory will first be copied to a temporary native memory area. The temporary memory area will then be used as the parameter value for the call. If needed, the java memory will be automatically reloaded from the temporary native memory after the native function returns.
Note: the transient nature of the temporary memory allocated for non-direct memory means native functions which store the address value passed to them will fail in unpredictable ways when using non-direct memory. You will need to explicitly allocate direct memory to use those types of functions.
public final long address()
Pointerpublic final long size()
Pointersize in class PointerPointer points to. If
the size is unknown, Long.MAX_VALUE is returned}.protected final int index(long off)
protected final int remaining(long offset)
public final boolean isNull()
public String getString(long offset)
PointerString value at the given offset.public String getString(long offset, int maxLength, Charset cs)
PointerString value at the given offset, using a specific CharsetgetString in class Pointeroffset - the offset from the start of the memory this Pointer represents at which the value will be read.maxLength - the maximum size of memory to search for a NUL byte.cs - the Charset to use to decode the string.String value read from memory.public void putString(long offset,
String string,
int maxLength,
Charset cs)
PointerString value at the given offset, using a specific Charsetpublic void putZeroTerminatedByteArray(long offset,
byte[] src,
int off,
int len)
public final byte getByte(long offset)
Pointerbyte (8 bit) value at the given offset.public final short getShort(long offset)
Pointershort (16 bit) value at the given offset.public final int getInt(long offset)
Pointerint (32 bit) value at the given offset.public final long getLongLong(long offset)
Pointerlong (64 bit) value at the given offset.getLongLong in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the value will be read.long value at the offset.public final long getAddress(long offset)
getAddress in class AbstractMemoryIOpublic final float getFloat(long offset)
Pointerfloat (32 bit) value at the given offset.public final double getDouble(long offset)
Pointerdouble (64 bit) value at the given offset.public final void putByte(long offset,
byte value)
Pointerbyte (8 bit) value at the given offset.public final void putShort(long offset,
short value)
Pointershort (16 bit) value at the given offset.public final void putInt(long offset,
int value)
Pointerint (32 bit) value at the given offset.public final void putLongLong(long offset,
long value)
Pointerlong (64 bit) value at the given offset.putLongLong in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the value will be written.value - the long value to be written.public final void putAddress(long offset,
long value)
putAddress in class AbstractMemoryIOpublic final void putFloat(long offset,
float value)
Pointerfloat (32 bit, single precision) value at the given offset.public final void putDouble(long offset,
double value)
Pointerdouble (64 bit, double precision) value at the given offset.public final void get(long offset,
byte[] dst,
int off,
int len)
Pointerbyte values.
This method reads multiple byte values from consecutive addresses,
beginning at the given offset, and stores them in an array.get in class Pointeroffset - the offset from the start of the memory this Pointer represents at which the first value will be read.dst - the array into which values are to be stored.off - the start index in the dst array to begin storing the values.len - the number of values to be read.public final void put(long offset,
byte[] src,
int off,
int len)
Pointerbyte values.
This method writes multiple byte values to consecutive addresses,
beginning at the given offset, from an array.public final void get(long offset,
short[] dst,
int off,
int len)
Pointershort values.
This method reads multiple short values from consecutive addresses,
beginning at the given offset, and stores them in an array.get in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the first value will be read.dst - The array into which values are to be stored.off - the start index in the dst array to begin storing the values.len - the number of values to be read.public final void put(long offset,
short[] src,
int off,
int len)
Pointershort values.
This method writes multiple short values to consecutive addresses,
beginning at the given offset, from an array.public final void get(long offset,
int[] dst,
int off,
int len)
Pointerint values.
This method reads multiple int values from consecutive addresses,
beginning at the given offset, and stores them in an array.get in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the first value will be read.dst - The array into which values are to be stored.off - the start index in the dst array to begin storing the values.len - the number of values to be read.public final void put(long offset,
int[] src,
int off,
int len)
Pointerint values.
This method writes multiple int values to consecutive addresses,
beginning at the given offset, from an array.public final void get(long offset,
long[] dst,
int off,
int len)
Pointerlong values.
This method reads multiple long values from consecutive addresses,
beginning at the given offset, and stores them in an array.get in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the first value will be read.dst - The array into which values are to be stored.off - the start index in the dst array to begin storing the values.len - the number of values to be read.public final void put(long offset,
long[] src,
int off,
int len)
Pointerlong values.
This method writes multiple long values to consecutive addresses,
beginning at the given offset, from an array.public final void get(long offset,
float[] dst,
int off,
int len)
Pointerfloat values.
This method reads multiple float values from consecutive addresses,
beginning at the given offset, and stores them in an array.get in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the first value will be read.dst - The array into which values are to be stored.off - the start index in the dst array to begin storing the values.len - the number of values to be read.public final void put(long offset,
float[] src,
int off,
int len)
Pointerfloat values.
This method writes multiple float values to consecutive addresses,
beginning at the given offset, from an array.public final void get(long offset,
double[] dst,
int off,
int len)
Pointerdouble values.
This method reads multiple double values from consecutive addresses,
beginning at the given offset, and stores them in an array.get in class Pointeroffset - The offset from the start of the memory this Pointer represents at which the first value will be read.dst - The array into which values are to be stored.off - the start index in the dst array to begin storing the values.len - the number of values to be read.public final void put(long offset,
double[] src,
int off,
int len)
Pointerdouble values.
This method writes multiple double values to consecutive addresses,
beginning at the given offset, from an array.public final int indexOf(long offset,
byte value)
PointerPointer.indexOf in class AbstractMemoryIOoffset - the offset from the start of the memory location this Pointer represents to begin searching.value - the byte value to locate.public final int indexOf(long offset,
byte value,
int maxlen)
PointerPointer.indexOf in class Pointeroffset - the offset from the start of the memory location this Pointer represents to begin searching.value - the byte value to locate.maxlen - the maximum number of bytes to search for the desired value.public final void setMemory(long offset,
long size,
byte value)
PointerPointer.
to a specified value.public final void clear()
Copyright © 2013. All rights reserved.