Class DirectCleaner
java.lang.Object
io.netty.util.internal.DirectCleaner
- All Implemented Interfaces:
Cleaner
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionallocate(int capacity) Create a directByteBufferand return it alongside its cleaning mechanism, in aCleanableDirectBuffer.voidfreeDirectBuffer(ByteBuffer buffer) Free a directByteBufferif possiblebooleanCheck if the clean operation is "relatively expensive".reallocate(CleanableDirectBuffer old, int newCapacity) Reallocate a direct buffer with a new capacity.
-
Constructor Details
-
DirectCleaner
DirectCleaner()
-
-
Method Details
-
allocate
Description copied from interface:CleanerCreate a directByteBufferand return it alongside its cleaning mechanism, in aCleanableDirectBuffer.- Specified by:
allocatein interfaceCleaner- Parameters:
capacity- The desired capacity of the direct buffer.- Returns:
- The new
CleanableDirectBufferinstance.
-
reallocate
Description copied from interface:CleanerReallocate a direct buffer with a new capacity. The old buffer is consumed and must not be used after this call.The default implementation allocates a new buffer, copies the data, and frees the old one. Implementations may override this to provide more efficient reallocation (e.g. via
Unsafe.reallocateMemory).- Specified by:
reallocatein interfaceCleaner
-
freeDirectBuffer
Description copied from interface:CleanerFree a directByteBufferif possible- Specified by:
freeDirectBufferin interfaceCleaner
-
hasExpensiveClean
public boolean hasExpensiveClean()Description copied from interface:CleanerCheck if the clean operation is "relatively expensive". Expensive clean operations are fine for pooling allocators, but should be avoided for unpooled buffers.- Specified by:
hasExpensiveCleanin interfaceCleaner- Returns:
trueif this Cleaner has an expensive clean (i.e.CleanableDirectBuffer.clean()) operation.
-