/** Releases a direct buffer. {@link #setBuffer(ByteBuffer)} must be called before any write operations can be performed. */ public void release () { close(); UnsafeUtil.releaseBuffer(niobuffer); niobuffer = null; }
/** Release a direct buffer. {@link #setBuffer(ByteBuffer, int)} should be called before next write operations can be called. * * NOTE: If Cleaner is not accessible due to SecurityManager restrictions, reflection could be used to obtain the "clean" * method and then invoke it. */ public void release () { clear(); UnsafeUtil.releaseBuffer(niobuffer); niobuffer = null; }
/*** Release a direct buffer. {@link #setBuffer(ByteBuffer, int, int)} should be called before next write operations can be * called. */ public void release () { close(); UnsafeUtil.releaseBuffer(niobuffer); niobuffer = null; }
/*** Release a direct buffer. {@link #setBuffer(ByteBuffer, int)} should be called before next write operations can be called. * * NOTE: If Cleaner is not accessible due to SecurityManager restrictions, reflection could be used to obtain the "clean" * method and then invoke it. */ public void release () { clear(); UnsafeUtil.releaseBuffer(niobuffer); niobuffer = null; }
/** This constructor allows for creation of a direct ByteBuffer of a given size at a given address. * * <p> * Typical usage could look like this snippet: * * <pre> * // Explicitly allocate memory * long bufAddress = UnsafeUtil.unsafe().allocateMemory(4096); * // Create a ByteBufferInput using the allocated memory region * ByteBufferInput buffer = new ByteBufferInput(bufAddress, 4096); * * // Do some operations on this buffer here * * // Say that ByteBuffer won't be used anymore * buffer.release(); * // Release the allocated region * UnsafeUtil.unsafe().freeMemory(bufAddress); * </pre> * * @param address starting address of a memory region pre-allocated using Unsafe.allocateMemory() */ public ByteBufferInput (long address, int size) { setBuffer(UnsafeUtil.getDirectBufferAt(address, size)); }
/** Creates a direct ByteBuffer of a given size at a given address. * <p> * Typical usage could look like this snippet: * * <pre> * // Explicitly allocate memory * long bufAddress = UnsafeUtil.unsafe().allocateMemory(4096); * // Create a ByteBufferOutput using the allocated memory region * ByteBufferOutput buffer = new ByteBufferOutput(bufAddress, 4096); * * // Do some operations on this buffer here * * // Say that ByteBuffer won't be used anymore * buffer.release(); * // Release the allocated region * UnsafeUtil.unsafe().freeMemory(bufAddress); * </pre> * @param address starting address of a memory region pre-allocated using Unsafe.allocateMemory() * @param maxBufferSize */ public ByteBufferOutput (long address, int maxBufferSize) { niobuffer = UnsafeUtil.getDirectBufferAt(address, maxBufferSize); setBuffer(niobuffer, maxBufferSize); }
/*** This constructor allows for creation of a direct ByteBuffer of a given size at a given address. * * <p> * Typical usage could look like this snippet: * * <pre> * // Explicitly allocate memory * long bufAddress = UnsafeUtil.unsafe().allocateMemory(4096); * // Create a ByteBufferInput using the allocated memory region * ByteBufferInput buffer = new ByteBufferInput(bufAddress, 4096); * * // Do some operations on this buffer here * * // Say that ByteBuffer won't be used anymore * buffer.release(); * // Release the allocated region * UnsafeUtil.unsafe().freeMemory(bufAddress); * </pre> * * @param address starting address of a memory region pre-allocated using Unsafe.allocateMemory() * @param maxBufferSize */ public ByteBufferInput (long address, int maxBufferSize) { niobuffer = UnsafeUtil.getDirectBufferAt(address, maxBufferSize); setBuffer(niobuffer, 0, maxBufferSize); }
/*** This constructor allows for creation of a direct ByteBuffer of a given size at a given address. * * <p> * Typical usage could look like this snippet: * * <pre> * // Explicitly allocate memory * long bufAddress = UnsafeUtil.unsafe().allocateMemory(4096); * // Create a ByteBufferOutput using the allocated memory region * ByteBufferOutput buffer = new ByteBufferOutput(bufAddress, 4096); * * // Do some operations on this buffer here * * // Say that ByteBuffer won't be used anymore * buffer.release(); * // Release the allocated region * UnsafeUtil.unsafe().freeMemory(bufAddress); * </pre> * * @param address starting address of a memory region pre-allocated using Unsafe.allocateMemory() * @param maxBufferSize */ public ByteBufferOutput (long address, int maxBufferSize) { niobuffer = UnsafeUtil.getDirectBufferAt(address, maxBufferSize); setBuffer(niobuffer, maxBufferSize); }