org.apache.ignite.internal.processors.cache.persistence.tree.io

## Class BPlusLeafIO<L>

- java.lang.Object
- - org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO
  - - org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO<L>
    - - org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusLeafIO<L>

All Implemented Interfaces:
  CompactablePageIO

Direct Known Subclasses:
  AbstractDataLeafIO, AbstractInlineLeafIO, AbstractLeafIO, AbstractPendingEntryLeafIO, IndexStorageImpl.MetaStoreLeafIO, MetastorageLeafIO, TxLogLeafIO

    public abstract class BPlusLeafIO<L>
    extends BPlusIO<L>

Abstract IO routines for B+Tree leaf pages.

### Field Summary

### Fields inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO

`ITEMS_OFF, itemSize`

### Fields inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO

`COMMON_HEADER_END, CRC_OFF, MAX_PAYLOAD_SIZE, PAGE_ID_OFF, ROTATED_ID_PART_OFF, T_BPLUS_META, T_CACHE_ID_AWARE_DATA_REF_INNER, T_CACHE_ID_AWARE_DATA_REF_LEAF, T_CACHE_ID_AWARE_PENDING_REF_INNER, T_CACHE_ID_AWARE_PENDING_REF_LEAF, T_CACHE_ID_DATA_REF_MVCC_INNER, T_CACHE_ID_DATA_REF_MVCC_LEAF, T_DATA, T_DATA_METASTORAGE, T_DATA_PART, T_DATA_REF_INNER, T_DATA_REF_LEAF, T_DATA_REF_METASTORAGE_INNER, T_DATA_REF_METASTORAGE_LEAF, T_DATA_REF_MVCC_INNER, T_DATA_REF_MVCC_LEAF, T_DEFRAG_LINK_MAPPING_INNER, T_DEFRAG_LINK_MAPPING_LEAF, T_H2_EX_REF_INNER_END, T_H2_EX_REF_INNER_START, T_H2_EX_REF_LEAF_END, T_H2_EX_REF_LEAF_START, T_H2_EX_REF_MVCC_INNER_END, T_H2_EX_REF_MVCC_INNER_START, T_H2_EX_REF_MVCC_LEAF_END, T_H2_EX_REF_MVCC_LEAF_START, T_H2_MVCC_REF_INNER, T_H2_MVCC_REF_LEAF, T_H2_REF_INNER, T_H2_REF_LEAF, T_MARKER_PAGE, T_META, T_METASTORE_INNER, T_METASTORE_LEAF, T_PAGE_LIST_META, T_PAGE_LIST_NODE, T_PAGE_UPDATE_TRACKING, T_PART_CNTRS, T_PART_META, T_PENDING_REF_INNER, T_PENDING_REF_LEAF, T_TX_LOG_INNER, T_TX_LOG_LEAF, TYPE_OFF, VER_OFF`

### Constructor Summary

Constructors
`protected` `BPlusLeafIO(int type, int ver, int itemSize)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `copyItems(long srcPageAddr, long dstPageAddr, int srcIdx, int dstIdx, int cnt, boolean cpLeft)` Copy items from source page to destination page.
`int` `getMaxCount(long pageAddr, int pageSize)`
`int` `offset(int idx)`

### Methods inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.BPlusIO

`canGetRow, compactPage, getCount, getForward, getFreeSpace, getItemsEnd, getItemSize, getLookupRow, getRemoveId, initNewPage, insert, isLeaf, merge, printPage, remove, restorePage, setCount, setForward, setRemoveId, splitExistingPage, splitForwardPage, store, store, storeByOffset, visit`

### Methods inherited from class org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO

`assertPageType, assertPageType, copyPage, deriveIndexPageType, getBPlusIO, getBPlusIO, getCompactedSize, getCompactedSize, getCompressedSize, getCompressedSize, getCompressionType, getCompressionType, getCrc, getCrc, getInnerVersions, getLeafVersions, getPageId, getPageId, getPageIO, getPageIO, getPageIO, getRotatedIdPart, getType, getType, getType, getVersion, getVersion, getVersion, isDataPageType, isIndexPage, printPage, registerH2, registerH2ExtraInner, registerH2ExtraLeaf, registerTest, registerTest, setCompactedSize, setCompressedSize, setCompressionType, setCrc, setCrc, setPageId, setRotatedIdPart, setType, setVersion, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### BPlusLeafIO

    protected BPlusLeafIO(int type,
                          int ver,
                          int itemSize)

Parameters:
  `type` - Page type.
  `ver` - Page format version.
  `itemSize` - Single item size on page.

### Method Detail

#### getMaxCount

    public int getMaxCount(long pageAddr,
                           int pageSize)

Specified by:
  `getMaxCount` in class `BPlusIO<L>`
Parameters:
  `pageAddr` - Page address.
  `pageSize` - Page size without encryption overhead.
Returns:
  Max items count.

#### copyItems

    public final void copyItems(long srcPageAddr,
                                long dstPageAddr,
                                int srcIdx,
                                int dstIdx,
                                int cnt,
                                boolean cpLeft)
                         throws IgniteCheckedException

Copy items from source page to destination page. Both pages must be of the same type and the same version.

Specified by:
  `copyItems` in class `BPlusIO<L>`
Parameters:
  `srcPageAddr` - Source page address.
  `dstPageAddr` - Destination page address.
  `srcIdx` - Source begin index.
  `dstIdx` - Destination begin index.
  `cnt` - Items count.
  `cpLeft` - Copy leftmost link (makes sense only for inner pages).
Throws:
  `IgniteCheckedException` - If failed.

#### offset

    public final int offset(int idx)

Specified by:
  `offset` in class `BPlusIO<L>`
Parameters:
  `idx` - Index of element.
Returns:
  Offset from byte buffer begin in bytes.

${current.year} Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Database and Caching Platform | : ver. 2.15.0
Release Date | : April 25 2023