class BPlusLeafIO<L> extends BPlusIO<L> {
    /**
     * @param type Page type.
     * @param ver Page format version.
     * @param itemSize Single item size on page.
     */
    protected BPlusLeafIO(int type, int ver, int itemSize) {
        super(type, ver, true, true, itemSize);
    }

    /** {@inheritDoc} */
    @Override public int getMaxCount(long pageAddr, int pageSize) {
        return (pageSize - ITEMS_OFF) / getItemSize();
    }

    /** {@inheritDoc} */
    @Override public final void copyItems(long srcPageAddr, long dstPageAddr, int srcIdx, int dstIdx, int cnt,
        boolean cpLeft) throws IgniteCheckedException {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public final int offset(int idx) {
        assert idx >= 0 : idx;

        return ITEMS_OFF + idx * getItemSize();
    }
}

        assert srcIdx != dstIdx || srcPageAddr != dstPageAddr;
        assertPageType(dstPageAddr);

        PageHandler.copyMemory(srcPageAddr, offset(srcIdx), dstPageAddr, offset(dstIdx),
            cnt * getItemSize());
    
<methods>public final boolean canGetRow() ,public void compactPage(java.nio.ByteBuffer, java.nio.ByteBuffer, int) ,public abstract void copyItems(long, long, int, int, int, boolean) throws org.apache.ignite.IgniteCheckedException,public final int getCount(long) ,public final long getForward(long) ,public int getFreeSpace(int, long) ,public final int getItemSize() ,public int getItemsEnd(long) ,public abstract L getLookupRow(BPlusTree<L,?>, long, int) throws org.apache.ignite.IgniteCheckedException,public abstract int getMaxCount(long, int) ,public final long getRemoveId(long) ,public void initNewPage(long, long, int, org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMetrics) ,public byte[] insert(long, int, L, byte[], long, boolean) throws org.apache.ignite.IgniteCheckedException,public final boolean isLeaf() ,public boolean merge(BPlusIO<L>, long, int, long, long, boolean, int) throws org.apache.ignite.IgniteCheckedException,public abstract int offset(int) ,public void remove(long, int, int) throws org.apache.ignite.IgniteCheckedException,public void restorePage(java.nio.ByteBuffer, int) ,public final void setCount(long, int) ,public final void setForward(long, long) ,public final void setRemoveId(long, long) ,public void splitExistingPage(long, int, long) ,public void splitForwardPage(long, long, long, int, int, int, org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMetrics) throws org.apache.ignite.IgniteCheckedException,public final byte[] store(long, int, L, byte[], boolean) throws org.apache.ignite.IgniteCheckedException,public abstract void store(long, int, BPlusIO<L>, long, int) throws org.apache.ignite.IgniteCheckedException,public abstract void storeByOffset(long, int, L) throws org.apache.ignite.IgniteCheckedException,public void visit(long, IgniteInClosure<L>) <variables>private static final int CNT_OFF,private static final int FORWARD_OFF,protected static final int ITEMS_OFF,private static final int REMOVE_ID_OFF,private final non-sealed boolean canGetRow,protected final non-sealed int itemSize,private final non-sealed boolean leaf