Package com.sun.jna
Class Memory
java.lang.Object
com.sun.jna.Pointer
com.sun.jna.Memory
- All Implemented Interfaces:
- Closeable,- AutoCloseable
- Direct Known Subclasses:
- 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);
 - Author:
- Sheng Liang, originator, Todd Fast, suitability modifications, Timothy Wall
- See Also:
- 
Field SummaryFields
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionalign(int byteBoundary) Provide a view onto this structure with the given alignment.protected voidboundsCheck(long off, long sz) Check that indirection won't cause us to write outside the malloc'ed space.voidclear()Zero the full extent of this memory region.voidclose()Free the native memory and set peer to zeroprotected voiddispose()Deprecated.static voidDispose of all allocated memory.dump()Dumps the contents of this memory object.protected static voidfree(long p) bytegetByte(long offset) Indirect the native pointer tomallocspace, a laPointer.getByte.getByteBuffer(long offset, long length) Get a ByteBuffer mapped to a portion of this memory.chargetChar(long offset) Indirect the native pointer tomallocspace, a laPointer.getByte.doublegetDouble(long offset) Indirect the native pointer tomallocspace, a laPointer.getDouble.floatgetFloat(long offset) Indirect the native pointer tomallocspace, a laPointer.getFloat.intgetInt(long offset) Indirect the native pointer tomallocspace, a laPointer.getInt.longgetLong(long offset) Indirect the native pointer tomallocspace, a laPointer.getLong.getPointer(long offset) Indirect the native pointer tomallocspace, a laPointer.getPointer.shortgetShort(long offset) Indirect the native pointer tomallocspace, 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 longmalloc(long size) static voidpurge()Force cleanup of memory that has associated NIO Buffers which have been GC'd.voidread(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidread(long bOff, char[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidread(long bOff, double[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidread(long bOff, float[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidread(long bOff, int[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidread(long bOff, long[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidread(long bOff, short[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read.voidIndirect the native pointer tomallocspace, a laPointer.read.voidsetByte(long offset, byte value) Indirect the native pointer tomallocspace, a laPointer.setByte.voidsetChar(long offset, char value) Indirect the native pointer tomallocspace, a laPointer.setChar.voidsetDouble(long offset, double value) Indirect the native pointer tomallocspace, a laPointer.setDouble.voidsetFloat(long offset, float value) Indirect the native pointer tomallocspace, a laPointer.setFloat.voidsetInt(long offset, int value) Indirect the native pointer tomallocspace, a laPointer.setInt.voidsetLong(long offset, long value) Indirect the native pointer tomallocspace, a laPointer.setLong.voidsetPointer(long offset, Pointer value) Indirect the native pointer tomallocspace, a laPointer.setPointer.voidsetShort(long offset, short value) Indirect the native pointer tomallocspace, a laPointer.setShort.voidCopy stringvalueto the location being pointed to, using the requested encoding.voidsetWideString(long offset, String value) Copy stringvalueto 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.longsize()toString()booleanvalid()Returns false if the memory has been freed.voidwrite(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidwrite(long bOff, char[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidwrite(long bOff, double[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidwrite(long bOff, float[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidwrite(long bOff, int[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidwrite(long bOff, long[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidwrite(long bOff, short[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write.voidIndirect the native pointer tomallocspace, a laPointer.write.Methods inherited from class com.sun.jna.Pointerclear, 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
- 
Field Details- 
sizeprotected long size
 
- 
- 
Constructor Details- 
Memorypublic Memory(long size) Allocate space in the native heap via a call to C'smalloc.- Parameters:
- size- number of bytes of space to allocate
 
- 
Memoryprotected Memory()
 
- 
- 
Method Details- 
purgepublic static void purge()Force cleanup of memory that has associated NIO Buffers which have been GC'd.
- 
disposeAllpublic static void disposeAll()Dispose of all allocated memory.
- 
alignProvide a view onto this structure with the given alignment.- Parameters:
- byteBoundary- Align memory to this number of bytes; should be a power of two.
- Throws:
- IndexOutOfBoundsException- if the requested alignment can not be met.
- IllegalArgumentException- if the requested alignment is not a positive power of two.
 
- 
closepublic void close()Free the native memory and set peer to zero- Specified by:
- closein interface- AutoCloseable
- Specified by:
- closein interface- Closeable
 
- 
disposeDeprecated.
- 
clearpublic void clear()Zero the full extent of this memory region.
- 
validpublic boolean valid()Returns false if the memory has been freed.
- 
sizepublic long size()
- 
boundsCheckprotected void boundsCheck(long off, long sz) Check that indirection won't cause us to write outside the malloc'ed space.
- 
readpublic void read(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readpublic void read(long bOff, short[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readpublic void read(long bOff, char[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readpublic void read(long bOff, int[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readpublic void read(long bOff, long[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readpublic void read(long bOff, float[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readpublic void read(long bOff, double[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
readIndirect the native pointer tomallocspace, a laPointer.read. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, byte[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, short[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, char[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, int[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, long[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, float[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writepublic void write(long bOff, double[] buf, int index, int length) Indirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
writeIndirect the native pointer tomallocspace, a laPointer.write. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getBytepublic byte getByte(long offset) Indirect the native pointer tomallocspace, a laPointer.getByte. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getCharpublic char getChar(long offset) Indirect the native pointer tomallocspace, a laPointer.getByte. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getShortpublic short getShort(long offset) Indirect the native pointer tomallocspace, a laPointer.getShort. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getIntpublic int getInt(long offset) Indirect the native pointer tomallocspace, a laPointer.getInt. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getLongpublic long getLong(long offset) Indirect the native pointer tomallocspace, a laPointer.getLong. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getFloatpublic float getFloat(long offset) Indirect the native pointer tomallocspace, a laPointer.getFloat. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getDoublepublic double getDouble(long offset) Indirect the native pointer tomallocspace, a laPointer.getDouble. But this method performs a bounds check to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
getPointerIndirect the native pointer tomallocspace, a laPointer.getPointer. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.- Overrides:
- getPointerin class- Pointer
- Parameters:
- offset- byte offset from pointer to perform the indirection
- Returns:
- a Pointerequivalent of the pointer value being pointed to, ornullif the pointer value isNULL;
- See Also:
 
- 
getByteBufferGet 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).- Overrides:
- getByteBufferin class- Pointer
- Parameters:
- offset- byte offset from pointer to start the buffer
- length- Length of ByteBuffer
- Returns:
- a direct ByteBuffer that accesses the memory being pointed to,
 
- 
getStringDescription copied from class:PointerCopy native memory to a Java String using the requested encoding.
- 
getWideStringDescription copied from class:PointerRead a wide (const wchar_t *) string from memory.- Overrides:
- getWideStringin class- Pointer
 
- 
setBytepublic void setByte(long offset, byte value) Indirect the native pointer tomallocspace, a laPointer.setByte. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setCharpublic void setChar(long offset, char value) Indirect the native pointer tomallocspace, a laPointer.setChar. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setShortpublic void setShort(long offset, short value) Indirect the native pointer tomallocspace, a laPointer.setShort. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setIntpublic void setInt(long offset, int value) Indirect the native pointer tomallocspace, a laPointer.setInt. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setLongpublic void setLong(long offset, long value) Indirect the native pointer tomallocspace, a laPointer.setLong. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setFloatpublic void setFloat(long offset, float value) Indirect the native pointer tomallocspace, a laPointer.setFloat. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setDoublepublic void setDouble(long offset, double value) Indirect the native pointer tomallocspace, a laPointer.setDouble. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.
- 
setPointerIndirect the native pointer tomallocspace, a laPointer.setPointer. But this method performs a bounds checks to ensure that the indirection does not cause memory outside themalloced space to be accessed.- Overrides:
- setPointerin class- Pointer
- Parameters:
- offset- byte offset from pointer at which- valuemust be set
- value-- Pointerholding the actual pointer value to set, which may be- nullto indicate a- NULLpointer.
- See Also:
 
- 
setStringDescription copied from class:PointerCopy stringvalueto the location being pointed to, using the requested encoding.
- 
setWideStringDescription copied from class:PointerCopy stringvalueto the location being pointed to as a wide string (wchar_t*).- Overrides:
- setWideStringin class- Pointer
- Parameters:
- offset- byte offset from pointer at which characters in- valuemust be set
- value-- java.lang.Stringvalue to set
 
- 
toString
- 
freeprotected static void free(long p) 
- 
mallocprotected static long malloc(long size) 
- 
dumpDumps the contents of this memory object.
 
-