Class PagesListNodeIO

    • Constructor Detail

      • PagesListNodeIO

        protected PagesListNodeIO​(int ver)
        Parameters:
        ver - Page format version.
    • Method Detail

      • initNewPage

        public void initNewPage​(long pageAddr,
                                long pageId,
                                int pageSize,
                                PageMetrics metrics)
        Overrides:
        initNewPage in class PageIO
        Parameters:
        pageAddr - Page address.
        pageId - Page ID.
        pageSize - Page size.
        metrics - Page metrics for tracking page allocation. Can be null if no tracking is required.
        See Also:
        EncryptionSpi.encryptedSize(int)
      • getNextId

        public long getNextId​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        Next page ID.
      • setNextId

        public void setNextId​(long pageAddr,
                              long nextId)
        Parameters:
        pageAddr - Page address.
        nextId - Next page ID.
      • getPreviousId

        public long getPreviousId​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        Previous page ID.
      • setPreviousId

        public void setPreviousId​(long pageAddr,
                                  long prevId)
        Parameters:
        pageAddr - Page address.
        prevId - Previous page ID.
      • getCount

        public int getCount​(long pageAddr)
        Gets total count of entries in this page. Does not change the buffer state.
        Parameters:
        pageAddr - Page address to get count from.
        Returns:
        Total number of entries.
      • getCapacity

        public int getCapacity​(int pageSize)
        Gets capacity of this page in items.
        Parameters:
        pageSize - Page size.
        Returns:
        Capacity of this page in items.
      • getAt

        public long getAt​(long pageAddr,
                          int idx)
        Parameters:
        pageAddr - Page address.
        idx - Item index.
        Returns:
        Item at the given index.
      • addPage

        public int addPage​(long pageAddr,
                           long pageId,
                           int pageSize)
        Adds page to the end of pages list.
        Parameters:
        pageAddr - Page address.
        pageId - Page ID.
        pageSize - Page size.
        Returns:
        Total number of items in this page.
      • takeAnyPage

        public long takeAnyPage​(long pageAddr)
        Removes any page from the pages list.
        Parameters:
        pageAddr - Page address.
        Returns:
        Removed page ID.
      • removePage

        public boolean removePage​(long pageAddr,
                                  long dataPageId)
        Removes the given page ID from the pages list.
        Parameters:
        pageAddr - Page address.
        dataPageId - Page ID to remove.
        Returns:
        true if page was in the list and was removed, false otherwise.
      • isEmpty

        public boolean isEmpty​(long pageAddr)
        Parameters:
        pageAddr - Page address.
        Returns:
        True if there are no items in this page.
      • compactPage

        public void compactPage​(ByteBuffer page,
                                ByteBuffer out,
                                int pageSize)
        Compacts page contents to the output buffer. Implementation must not change contents, position and limit of the original page buffer.
        Specified by:
        compactPage in interface CompactablePageIO
        Parameters:
        page - Page buffer.
        out - Output buffer.
        pageSize - Page size.
      • restorePage

        public void restorePage​(ByteBuffer compactPage,
                                int pageSize)
        Restores the original page in place.
        Specified by:
        restorePage in interface CompactablePageIO
        Parameters:
        compactPage - Compact page.
        pageSize - Page size.
      • getFreeSpace

        public int getFreeSpace​(int pageSize,
                                long pageAddr)
        Count of bytes that is currently free in this page and possibly can be used to place additional payload.
        Specified by:
        getFreeSpace in class PageIO
        Parameters:
        pageSize - Page size.
        pageAddr - Page address.
        Returns:
        Free space.