|
JNA API> 3.0.7 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.sun.jna.Pointer
com.sun.jna.Memory
public class Memory
A Pointer to memory obtained from the native heap via a
call to malloc.
In some cases it might be necessary to use memory obtained from
malloc. For example, Memory helps
accomplish the following idiom:
void *buf = malloc(BUF_LEN * sizeof(char));
call_some_function(buf);
free(buf);
The finalize() method will free allocated memory when
this object is no longer referenced.
Pointer| Field Summary | |
|---|---|
protected long |
size
|
| Fields inherited from class com.sun.jna.Pointer |
|---|
NULL, peer, SIZE |
| Constructor Summary | |
|---|---|
protected |
Memory()
|
|
Memory(long size)
Allocate space in the native heap via a call to C's malloc. |
| Method Summary | |
|---|---|
Pointer |
align(int byteBoundary)
Provide a view onto this structure with the given alignment. |
protected void |
boundsCheck(long off,
long sz)
Check that indirection won't cause us to write outside the malloc'ed space. |
void |
clear()
Zero the full extent of this memory region. |
protected void |
finalize()
|
(package private) static void |
free(long ptr)
Call the real native free |
byte |
getByte(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getByte. |
java.nio.ByteBuffer |
getByteBuffer(long offset,
long length)
Get a ByteBuffer mapped to a portion of this memory. |
char |
getChar(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getByte. |
double |
getDouble(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getDouble. |
float |
getFloat(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getFloat. |
int |
getInt(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getInt. |
long |
getLong(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getLong. |
Pointer |
getPointer(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getPointer. |
short |
getShort(long offset)
Indirect the native pointer to malloc space, a la
Pointer.getShort. |
long |
getSize()
|
java.lang.String |
getString(long offset,
boolean wide)
Indirect the native pointer to malloc space, a la
Pointer.getString. |
boolean |
isValid()
Returns false if the memory has been freed. |
(package private) static long |
malloc(long size)
Call the real native malloc |
void |
read(long bOff,
byte[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
read(long bOff,
char[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
read(long bOff,
double[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
read(long bOff,
float[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
read(long bOff,
int[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
read(long bOff,
long[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
read(long bOff,
short[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.read. |
void |
setByte(long offset,
byte value)
Indirect the native pointer to malloc space, a la
Pointer.setByte. |
void |
setChar(long offset,
char value)
Indirect the native pointer to malloc space, a la
Pointer.setChar. |
void |
setDouble(long offset,
double value)
Indirect the native pointer to malloc space, a la
Pointer.setDouble. |
void |
setFloat(long offset,
float value)
Indirect the native pointer to malloc space, a la
Pointer.setFloat. |
void |
setInt(long offset,
int value)
Indirect the native pointer to malloc space, a la
Pointer.setInt. |
void |
setLong(long offset,
long value)
Indirect the native pointer to malloc space, a la
Pointer.setLong. |
void |
setPointer(long offset,
Pointer value)
Indirect the native pointer to malloc space, a la
Pointer.setPointer. |
void |
setShort(long offset,
short value)
Indirect the native pointer to malloc space, a la
Pointer.setShort. |
void |
setString(long offset,
java.lang.String value,
boolean wide)
Indirect the native pointer to malloc space, a la
Pointer.setString. |
Pointer |
share(long offset)
Provide a view onto this structure from the given offset. |
Pointer |
share(long offset,
long sz)
Provide a view onto this structure from the given offset. |
java.lang.String |
toString()
|
void |
write(long bOff,
byte[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
void |
write(long bOff,
char[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
void |
write(long bOff,
double[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
void |
write(long bOff,
float[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
void |
write(long bOff,
int[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
void |
write(long bOff,
long[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
void |
write(long bOff,
short[] buf,
int index,
int length)
Indirect the native pointer to malloc space, a la
Pointer.write. |
| Methods inherited from class com.sun.jna.Pointer |
|---|
clear, createConstant, equals, getByteArray, getCharArray, getDoubleArray, getFloatArray, getIntArray, getLongArray, getNativeLong, getPointerArray, getPointerArray, getShortArray, getString, getStringArray, getStringArray, hashCode, indexOf, read, setMemory, setNativeLong, setString, write |
| Methods inherited from class java.lang.Object |
|---|
clone, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected long size
| Constructor Detail |
|---|
public Memory(long size)
malloc.
size - number of bytes of space to allocateprotected Memory()
| Method Detail |
|---|
public Pointer share(long offset)
Pointer will have the same size as the original,
reduced by the offset.
share in class Pointerjava.lang.IndexOutOfBoundsException - if the requested memory is outside
the allocated bounds.
public Pointer share(long offset,
long sz)
share in class Pointerjava.lang.IndexOutOfBoundsException - if the requested memory is outside
the allocated bounds.public Pointer align(int byteBoundary)
byteBoundary - Align memory to this number of bytes; should be a
power of two.
java.lang.IndexOutOfBoundsException - if the requested alignment can
not be met.
java.lang.IllegalArgumentException - if the requested alignment is not
a positive power of two.protected void finalize()
finalize in class java.lang.Objectpublic void clear()
public boolean isValid()
public long getSize()
protected void boundsCheck(long off,
long sz)
public void read(long bOff,
byte[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer into which data is copiedbuf - byte array into which data is copiedindex - array index from which to start copyinglength - number of elements from native pointer that must be copiedPointer.read(long,byte[],int,int)
public void read(long bOff,
short[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer from which data is copiedbuf - short array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copiedPointer.read(long,short[],int,int)
public void read(long bOff,
char[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer from which data is copiedbuf - char array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copiedPointer.read(long,char[],int,int)
public void read(long bOff,
int[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer from which data is copiedbuf - int array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copiedPointer.read(long,int[],int,int)
public void read(long bOff,
long[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer from which data is copiedbuf - long array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copiedPointer.read(long,long[],int,int)
public void read(long bOff,
float[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer from which data is copiedbuf - float array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copiedPointer.read(long,float[],int,int)
public void read(long bOff,
double[] buf,
int index,
int length)
malloc space, a la
Pointer.read. But this method performs a bounds checks to
ensure that the indirection does not cause memory outside the
malloced space to be accessed.
read in class PointerbOff - byte offset from pointer from which data is copiedbuf - double array into which data is copiedindex - array index to which data is copiedlength - number of elements from native pointer that must be copiedPointer.read(long,double[],int,int)
public void write(long bOff,
byte[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - byte array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,byte[],int,int)
public void write(long bOff,
short[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - short array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,short[],int,int)
public void write(long bOff,
char[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - char array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,char[],int,int)
public void write(long bOff,
int[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - int array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,int[],int,int)
public void write(long bOff,
long[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - long array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,long[],int,int)
public void write(long bOff,
float[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - float array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,float[],int,int)
public void write(long bOff,
double[] buf,
int index,
int length)
malloc space, a la
Pointer.write. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
write in class PointerbOff - byte offset from pointer into which data is copiedbuf - double array from which to copyindex - array index from which to start copyinglength - number of elements from buf that must be
copiedPointer.write(long,double[],int,int)public byte getByte(long offset)
malloc space, a la
Pointer.getByte. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
getByte in class Pointeroffset - offset from pointer to perform the indirection
byte value being pointed toPointer.getByte(long)public char getChar(long offset)
malloc space, a la
Pointer.getByte. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
getChar in class Pointeroffset - offset from pointer to perform the indirection
wchar_t value being pointed toPointer.getByte(long)public short getShort(long offset)
malloc space, a la
Pointer.getShort. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
getShort in class Pointeroffset - byte offset from pointer to perform the indirection
short value being pointed toPointer.getShort(long)public int getInt(long offset)
malloc space, a la
Pointer.getInt. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
getInt in class Pointeroffset - byte offset from pointer to perform the indirection
int value being pointed toPointer.getInt(long)public long getLong(long offset)
malloc space, a la
Pointer.getLong. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
getLong in class Pointeroffset - byte offset from pointer to perform the indirection
long value being pointed toPointer.getLong(long)public float getFloat(long offset)
malloc space, a la
Pointer.getFloat. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
getFloat in class Pointeroffset - byte offset from pointer to perform the indirection
float value being pointed toPointer.getFloat(long)public double getDouble(long offset)
malloc space, a la
Pointer.getDouble. But this method performs a
bounds check to ensure that the indirection does not cause memory
outside the malloced space to be accessed.
getDouble in class Pointeroffset - byte offset from pointer to perform the indirection
double value being pointed toPointer.getDouble(long)public Pointer getPointer(long offset)
malloc space, a la
Pointer.getPointer. But this method performs
a bounds checks to ensure that the indirection does not cause memory
outside the malloced space to be accessed.
getPointer in class Pointeroffset - byte offset from pointer to perform the indirection
Pointer equivalent of the pointer value
being pointed to, or null if the pointer value is
NULL;Pointer.getPointer(long)
public java.nio.ByteBuffer getByteBuffer(long offset,
long length)
getByteBuffer in class Pointeroffset - byte offset from pointer to start the bufferlength - Length of ByteBuffer
public java.lang.String getString(long offset,
boolean wide)
malloc space, a la
Pointer.getString. But this method performs a
bounds checks to ensure that the indirection does not cause memory
outside the malloced space to be accessed.
getString in class Pointeroffset - byte offset from pointer to obtain the native string
v * @param wide whether to convert from a wide or standard C string
String value being pointed toPointer.getString(long, boolean)
public void setByte(long offset,
byte value)
malloc space, a la
Pointer.setByte. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
setByte in class Pointeroffset - byte offset from pointer at which value
must be setvalue - byte value to setPointer.setByte(long, byte)
public void setChar(long offset,
char value)
malloc space, a la
Pointer.setChar. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
setChar in class Pointeroffset - byte offset from pointer at which value
must be setvalue - char value to setPointer.setChar(long, char)
public void setShort(long offset,
short value)
malloc space, a la
Pointer.setShort. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
setShort in class Pointeroffset - byte offset from pointer at which value
must be setvalue - short value to setPointer.setShort(long, short)
public void setInt(long offset,
int value)
malloc space, a la
Pointer.setInt. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
setInt in class Pointeroffset - byte offset from pointer at which value
must be setvalue - int value to setPointer.setInt(long, int)
public void setLong(long offset,
long value)
malloc space, a la
Pointer.setLong. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
setLong in class Pointeroffset - byte offset from pointer at which value
must be setvalue - long value to setPointer.setLong(long, long)
public void setFloat(long offset,
float value)
malloc space, a la
Pointer.setFloat. But this method performs a bounds
checks to ensure that the indirection does not cause memory outside the
malloced space to be accessed.
setFloat in class Pointeroffset - byte offset from pointer at which value
must be setvalue - float value to setPointer.setFloat(long, float)
public void setDouble(long offset,
double value)
malloc space, a la
Pointer.setDouble. But this method performs a
bounds checks to ensure that the indirection does not cause memory
outside the malloced space to be accessed.
setDouble in class Pointeroffset - byte offset from pointer at which value
must be setvalue - double value to setPointer.setDouble(long, double)
public void setPointer(long offset,
Pointer value)
malloc space, a la
Pointer.setPointer. But this method performs
a bounds checks to ensure that the indirection does not cause memory
outside the malloced space to be accessed.
setPointer in class Pointeroffset - byte offset from pointer at which value
must be setvalue - Pointer holding the actual pointer value to
set, which may be null to indicate a NULL
pointer.Pointer.setPointer(long, com.sun.jna.Pointer)
public void setString(long offset,
java.lang.String value,
boolean wide)
malloc space, a la
Pointer.setString. But this method performs a
bounds checks to ensure that the indirection does not cause memory
outside the malloced space to be accessed.
setString in class Pointeroffset - byte offset from pointer at which characters in
value must be setvalue - java.lang.String value to setwide - whether to write the native string as an array of
wchar_t. If false, writes as a NUL-terminated array of
char using the default platform encoding.Pointer.setString(long,String,boolean)static long malloc(long size)
static void free(long ptr)
public java.lang.String toString()
toString in class Pointer
|
JNA API> 3.0.7 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||