Package com.sun.jna
Klasse Memory
java.lang.Object
com.sun.jna.Pointer
com.sun.jna.Memory
- Alle implementierten Schnittstellen:
Closeable
,AutoCloseable
- Bekannte direkte Unterklassen:
StringArray
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);
- Autor:
- Sheng Liang, originator, Todd Fast, suitability modifications, Timothy Wall
- Siehe auch:
-
Feldübersicht
Felder -
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungalign
(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.void
close()
Free the native memory and set peer to zeroprotected void
dispose()
Veraltet.static void
Dispose of all allocated memory.dump()
Dumps the contents of this memory object.protected static void
free
(long p) byte
getByte
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getByte
.getByteBuffer
(long offset, long length) Get a ByteBuffer mapped to a portion of this memory.char
getChar
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getByte
.double
getDouble
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getDouble
.float
getFloat
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getFloat
.int
getInt
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getInt
.long
getLong
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getLong
.getPointer
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getPointer
.short
getShort
(long offset) Indirect the native pointer tomalloc
space, a laPointer.getShort
.Copy native memory to a Java String using the requested encoding.getWideString
(long offset) Read a wide (const wchar_t *
) string from memory.protected static long
malloc
(long size) static void
purge()
Force cleanup of memory that has associated NIO Buffers which have been GC'd.void
read
(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
read
(long bOff, char[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
read
(long bOff, double[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
read
(long bOff, float[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
read
(long bOff, int[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
read
(long bOff, long[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
read
(long bOff, short[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
.void
Indirect the native pointer tomalloc
space, a laPointer.read
.void
setByte
(long offset, byte value) Indirect the native pointer tomalloc
space, a laPointer.setByte
.void
setChar
(long offset, char value) Indirect the native pointer tomalloc
space, a laPointer.setChar
.void
setDouble
(long offset, double value) Indirect the native pointer tomalloc
space, a laPointer.setDouble
.void
setFloat
(long offset, float value) Indirect the native pointer tomalloc
space, a laPointer.setFloat
.void
setInt
(long offset, int value) Indirect the native pointer tomalloc
space, a laPointer.setInt
.void
setLong
(long offset, long value) Indirect the native pointer tomalloc
space, a laPointer.setLong
.void
setPointer
(long offset, Pointer value) Indirect the native pointer tomalloc
space, a laPointer.setPointer
.void
setShort
(long offset, short value) Indirect the native pointer tomalloc
space, a laPointer.setShort
.void
Copy stringvalue
to the location being pointed to, using the requested encoding.void
setWideString
(long offset, String value) Copy stringvalue
to the location being pointed to as a wide string (wchar_t*
).share
(long offset) Provide a view of this memory using the given offset as the base address.share
(long offset, long sz) Provide a view of this memory using the given offset as the base address, bounds-limited with the given size.long
size()
toString()
boolean
valid()
Returns false if the memory has been freed.void
write
(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
write
(long bOff, char[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
write
(long bOff, double[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
write
(long bOff, float[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
write
(long bOff, int[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
write
(long bOff, long[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
write
(long bOff, short[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
.void
Indirect the native pointer tomalloc
space, a laPointer.write
.Von Klasse geerbte Methoden com.sun.jna.Pointer
clear, createConstant, createConstant, dump, equals, getByteArray, getCharArray, getDoubleArray, getFloatArray, getIntArray, getLongArray, getNativeLong, getPointerArray, getPointerArray, getShortArray, getString, getStringArray, getStringArray, getStringArray, getStringArray, getValue, getWideStringArray, getWideStringArray, hashCode, indexOf, nativeValue, nativeValue, setMemory, setNativeLong, setString, setString, setValue
-
Felddetails
-
size
protected long size
-
-
Konstruktordetails
-
Memory
public Memory(long size) Allocate space in the native heap via a call to C'smalloc
.- Parameter:
size
- number of bytes of space to allocate
-
Memory
protected Memory()
-
-
Methodendetails
-
purge
public static void purge()Force cleanup of memory that has associated NIO Buffers which have been GC'd. -
disposeAll
public static void disposeAll()Dispose of all allocated memory. -
align
Provide a view onto this structure with the given alignment.- Parameter:
byteBoundary
- Align memory to this number of bytes; should be a power of two.- Löst aus:
IndexOutOfBoundsException
- if the requested alignment can not be met.IllegalArgumentException
- if the requested alignment is not a positive power of two.
-
close
public void close()Free the native memory and set peer to zero- Angegeben von:
close
in SchnittstelleAutoCloseable
- Angegeben von:
close
in SchnittstelleCloseable
-
dispose
Veraltet. -
clear
public void clear()Zero the full extent of this memory region. -
valid
public boolean valid()Returns false if the memory has been freed. -
size
public long size() -
boundsCheck
protected void boundsCheck(long off, long sz) Check that indirection won't cause us to write outside the malloc'ed space. -
read
public void read(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
public void read(long bOff, short[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
public void read(long bOff, char[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
public void read(long bOff, int[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
public void read(long bOff, long[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
public void read(long bOff, float[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
public void read(long bOff, double[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
read
Indirect the native pointer tomalloc
space, a laPointer.read
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, short[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, char[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, int[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, long[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, float[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
public void write(long bOff, double[] buf, int index, int length) Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
write
Indirect the native pointer tomalloc
space, a laPointer.write
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getByte
public byte getByte(long offset) Indirect the native pointer tomalloc
space, a laPointer.getByte
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getChar
public char getChar(long offset) Indirect the native pointer tomalloc
space, a laPointer.getByte
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getShort
public short getShort(long offset) Indirect the native pointer tomalloc
space, a laPointer.getShort
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getInt
public int getInt(long offset) Indirect the native pointer tomalloc
space, a laPointer.getInt
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getLong
public long getLong(long offset) Indirect the native pointer tomalloc
space, a laPointer.getLong
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getFloat
public float getFloat(long offset) Indirect the native pointer tomalloc
space, a laPointer.getFloat
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getDouble
public double getDouble(long offset) Indirect the native pointer tomalloc
space, a laPointer.getDouble
. But this method performs a bounds check to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
getPointer
Indirect the native pointer tomalloc
space, a laPointer.getPointer
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed.- Setzt außer Kraft:
getPointer
in KlassePointer
- Parameter:
offset
- byte offset from pointer to perform the indirection- Gibt zurück:
- a
Pointer
equivalent of the pointer value being pointed to, ornull
if the pointer value isNULL
; - Siehe auch:
-
getByteBuffer
Get a ByteBuffer mapped to a portion of this memory. We keep a weak reference to all ByteBuffers provided so that this memory object is not GC'd while there are still implicit outstanding references to it (it'd be nice if we could attach our own reference to the ByteBuffer, but the VM generates the object so we have no control over it).- Setzt außer Kraft:
getByteBuffer
in KlassePointer
- Parameter:
offset
- byte offset from pointer to start the bufferlength
- Length of ByteBuffer- Gibt zurück:
- a direct ByteBuffer that accesses the memory being pointed to,
-
getString
Beschreibung aus Klasse kopiert:Pointer
Copy native memory to a Java String using the requested encoding. -
getWideString
Beschreibung aus Klasse kopiert:Pointer
Read a wide (const wchar_t *
) string from memory.- Setzt außer Kraft:
getWideString
in KlassePointer
-
setByte
public void setByte(long offset, byte value) Indirect the native pointer tomalloc
space, a laPointer.setByte
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setChar
public void setChar(long offset, char value) Indirect the native pointer tomalloc
space, a laPointer.setChar
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setShort
public void setShort(long offset, short value) Indirect the native pointer tomalloc
space, a laPointer.setShort
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setInt
public void setInt(long offset, int value) Indirect the native pointer tomalloc
space, a laPointer.setInt
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setLong
public void setLong(long offset, long value) Indirect the native pointer tomalloc
space, a laPointer.setLong
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setFloat
public void setFloat(long offset, float value) Indirect the native pointer tomalloc
space, a laPointer.setFloat
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setDouble
public void setDouble(long offset, double value) Indirect the native pointer tomalloc
space, a laPointer.setDouble
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed. -
setPointer
Indirect the native pointer tomalloc
space, a laPointer.setPointer
. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloc
ed space to be accessed.- Setzt außer Kraft:
setPointer
in KlassePointer
- Parameter:
offset
- byte offset from pointer at whichvalue
must be setvalue
-Pointer
holding the actual pointer value to set, which may benull
to indicate aNULL
pointer.- Siehe auch:
-
setString
Beschreibung aus Klasse kopiert:Pointer
Copy stringvalue
to the location being pointed to, using the requested encoding. -
setWideString
Beschreibung aus Klasse kopiert:Pointer
Copy stringvalue
to the location being pointed to as a wide string (wchar_t*
).- Setzt außer Kraft:
setWideString
in KlassePointer
- Parameter:
offset
- byte offset from pointer at which characters invalue
must be setvalue
-java.lang.String
value to set
-
toString
-
free
protected static void free(long p) -
malloc
protected static long malloc(long size) -
dump
Dumps the contents of this memory object.
-