Package jnr.ffi.provider.jffi
Class TransientNativeMemory
- java.lang.Object
-
- jnr.ffi.Pointer
-
- jnr.ffi.provider.AbstractMemoryIO
-
- jnr.ffi.provider.jffi.DirectMemoryIO
-
- jnr.ffi.provider.jffi.TransientNativeMemory
-
public class TransientNativeMemory extends DirectMemoryIO
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
TransientNativeMemory.Magazine
Holder for a group of memory allocations.private static class
TransientNativeMemory.Sentinel
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.ThreadLocal<TransientNativeMemory.Magazine>
currentMagazine
private static int
PAGES_PER_MAGAZINE
private static java.util.Map<TransientNativeMemory.Magazine,java.lang.Boolean>
referenceSet
Keeps strong references to the magazine until cleanupprivate TransientNativeMemory.Sentinel
sentinel
private int
size
-
Fields inherited from class jnr.ffi.provider.jffi.DirectMemoryIO
IO
-
-
Constructor Summary
Constructors Constructor Description TransientNativeMemory(Runtime runtime, TransientNativeMemory.Sentinel sentinel, long address, int size)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static long
align(long offset, long align)
static DirectMemoryIO
allocate(Runtime runtime, int size, int align, boolean clear)
void
dispose()
boolean
equals(java.lang.Object obj)
int
hashCode()
long
size()
Gets the size of this memory object in bytes (optional operation).-
Methods inherited from class jnr.ffi.provider.jffi.DirectMemoryIO
array, arrayLength, arrayOffset, get, get, get, get, get, get, getByte, getDouble, getFloat, getInt, getLongLong, getPointer, getPointer, getShort, getString, getString, hasArray, indexOf, put, put, put, put, put, put, putByte, putDouble, putFloat, putInt, putLongLong, putPointer, putShort, putString, putZeroTerminatedByteArray, setMemory, transferFrom, transferTo
-
Methods inherited from class jnr.ffi.provider.AbstractMemoryIO
checkBounds, checkBounds, getAddress, getInt, getLong, getNativeLong, indexOf, putAddress, putAddress, putInt, putLong, putNativeLong, slice, slice
-
Methods inherited from class jnr.ffi.Pointer
address, get, getNullTerminatedPointerArray, getNullTerminatedStringArray, getRuntime, isDirect, newIntPointer, put, toString, wrap, wrap, wrap
-
-
-
-
Field Detail
-
referenceSet
private static final java.util.Map<TransientNativeMemory.Magazine,java.lang.Boolean> referenceSet
Keeps strong references to the magazine until cleanup
-
currentMagazine
private static final java.lang.ThreadLocal<TransientNativeMemory.Magazine> currentMagazine
-
PAGES_PER_MAGAZINE
private static final int PAGES_PER_MAGAZINE
- See Also:
- Constant Field Values
-
sentinel
private final TransientNativeMemory.Sentinel sentinel
-
size
private final int size
-
-
Constructor Detail
-
TransientNativeMemory
TransientNativeMemory(Runtime runtime, TransientNativeMemory.Sentinel sentinel, long address, int size)
-
-
Method Detail
-
allocate
public static DirectMemoryIO allocate(Runtime runtime, int size, int align, boolean clear)
-
align
private static long align(long offset, long align)
-
size
public long size()
Description copied from class:Pointer
Gets the size of this memory object in bytes (optional operation).- Overrides:
size
in classDirectMemoryIO
- Returns:
- the size of the memory area this
Pointer
points to. If the size is unknown,Long.MAX_VALUE
is returned}.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classDirectMemoryIO
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classDirectMemoryIO
-
dispose
public final void dispose()
-
-