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 int
maxNumElems
private int
memoryMapIdx
(package private) PoolSubpage<T>
next
private int
nextAvail
private int
numAvail
private int
pageSize
(package private) PoolSubpage<T>
prev
private int
runOffset
-
Constructor Summary
Constructors Constructor Description PoolSubpage(int pageSize)
Special constructor that creates a linked list headPoolSubpage(PoolSubpage<T> head, PoolChunk<T> chunk, int memoryMapIdx, int runOffset, int pageSize, 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
init(PoolSubpage<T> head, int elemSize)
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 size (in bytes) of this page.private void
removeFromPool()
private void
setNextAvail(int bitmapIdx)
private long
toHandle(int bitmapIdx)
java.lang.String
toString()
-
-
-
Field Detail
-
memoryMapIdx
private final int memoryMapIdx
-
runOffset
private final int runOffset
-
pageSize
private final int pageSize
-
bitmap
private final long[] bitmap
-
prev
PoolSubpage<T> prev
-
next
PoolSubpage<T> next
-
doNotDestroy
boolean doNotDestroy
-
elemSize
int elemSize
-
maxNumElems
private int maxNumElems
-
bitmapLength
private int bitmapLength
-
nextAvail
private int nextAvail
-
numAvail
private int numAvail
-
-
Constructor Detail
-
PoolSubpage
PoolSubpage(int pageSize)
Special constructor that creates a linked list head
-
PoolSubpage
PoolSubpage(PoolSubpage<T> head, PoolChunk<T> chunk, int memoryMapIdx, int runOffset, int pageSize, int elemSize)
-
-
Method Detail
-
init
void init(PoolSubpage<T> head, int elemSize)
-
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 size (in bytes) of this page.- Specified by:
pageSize
in interfacePoolSubpageMetric
-
destroy
void destroy()
-
-