Package io.netty.buffer
Class PoolSubpage<T>
- java.lang.Object
-
- io.netty.buffer.PoolSubpage<T>
-
- All Implemented Interfaces:
PoolSubpageMetric
final class PoolSubpage<T> extends java.lang.Object implements PoolSubpageMetric
-
-
Field Summary
Fields Modifier and Type Field Description private long[]
bitmap
private int
bitmapLength
(package private) PoolChunk<T>
chunk
(package private) boolean
doNotDestroy
(package private) int
elemSize
private java.util.concurrent.locks.ReentrantLock
lock
private int
maxNumElems
(package private) PoolSubpage<T>
next
private int
nextAvail
private int
numAvail
private int
pageShifts
(package private) PoolSubpage<T>
prev
private int
runOffset
private int
runSize
-
Constructor Summary
Constructors Constructor Description PoolSubpage()
Special constructor that creates a linked list headPoolSubpage(PoolSubpage<T> head, PoolChunk<T> chunk, int pageShifts, int runOffset, int runSize, int elemSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addToPool(PoolSubpage<T> head)
(package private) long
allocate()
Returns the bitmap index of the subpage allocation.(package private) void
destroy()
int
elementSize()
Return the size (in bytes) of the elements that will be allocated.private int
findNextAvail()
private int
findNextAvail0(int i, long bits)
(package private) boolean
free(PoolSubpage<T> head, int bitmapIdx)
private int
getNextAvail()
(package private) void
lock()
int
maxNumElements()
Return the number of maximal elements that can be allocated out of the sub-page.int
numAvailable()
Return the number of available elements to be allocated.int
pageSize()
Return the page size (in bytes) of this page.private void
removeFromPool()
private void
setNextAvail(int bitmapIdx)
private long
toHandle(int bitmapIdx)
java.lang.String
toString()
(package private) void
unlock()
-
-
-
Field Detail
-
elemSize
final int elemSize
-
pageShifts
private final int pageShifts
-
runOffset
private final int runOffset
-
runSize
private final int runSize
-
bitmap
private final long[] bitmap
-
prev
PoolSubpage<T> prev
-
next
PoolSubpage<T> next
-
doNotDestroy
boolean doNotDestroy
-
maxNumElems
private int maxNumElems
-
bitmapLength
private int bitmapLength
-
nextAvail
private int nextAvail
-
numAvail
private int numAvail
-
lock
private final java.util.concurrent.locks.ReentrantLock lock
-
-
Constructor Detail
-
PoolSubpage
PoolSubpage()
Special constructor that creates a linked list head
-
PoolSubpage
PoolSubpage(PoolSubpage<T> head, PoolChunk<T> chunk, int pageShifts, int runOffset, int runSize, int elemSize)
-
-
Method Detail
-
allocate
long allocate()
Returns the bitmap index of the subpage allocation.
-
free
boolean free(PoolSubpage<T> head, int bitmapIdx)
- Returns:
true
if this subpage is in use.false
if this subpage is not used by its chunk and thus it's OK to be released.
-
addToPool
private void addToPool(PoolSubpage<T> head)
-
removeFromPool
private void removeFromPool()
-
setNextAvail
private void setNextAvail(int bitmapIdx)
-
getNextAvail
private int getNextAvail()
-
findNextAvail
private int findNextAvail()
-
findNextAvail0
private int findNextAvail0(int i, long bits)
-
toHandle
private long toHandle(int bitmapIdx)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
maxNumElements
public int maxNumElements()
Description copied from interface:PoolSubpageMetric
Return the number of maximal elements that can be allocated out of the sub-page.- Specified by:
maxNumElements
in interfacePoolSubpageMetric
-
numAvailable
public int numAvailable()
Description copied from interface:PoolSubpageMetric
Return the number of available elements to be allocated.- Specified by:
numAvailable
in interfacePoolSubpageMetric
-
elementSize
public int elementSize()
Description copied from interface:PoolSubpageMetric
Return the size (in bytes) of the elements that will be allocated.- Specified by:
elementSize
in interfacePoolSubpageMetric
-
pageSize
public int pageSize()
Description copied from interface:PoolSubpageMetric
Return the page size (in bytes) of this page.- Specified by:
pageSize
in interfacePoolSubpageMetric
-
destroy
void destroy()
-
lock
void lock()
-
unlock
void unlock()
-
-