Package net.sf.joafip.btreeplus.entity

Examples of net.sf.joafip.btreeplus.entity.DataBlockPage


    byte contentValue = 0;
    int index = 0;
    long nextFreeDataBlockPosition;
    DataBlock dataBlock = createDataBlock(bits, contentValue);
    context.addDataBlock(dataBlock, contentValue);
    final DataBlockPage dataBlockPage = dataBlock.getDataBlockPage();
    do {
      final long dataBlockPosition = dataBlock.getPositionInFile();
      assertEquals("data block not in expected page (bits " + bits
          + ", contentValue " + contentValue + ")", position,
          dataBlockPosition & PageConstant.START_PAGE_POSITION_MASK);
      assertEquals("bad index", index,
          dataBlock.getIndexInDataBlockPage());
      nextFreeDataBlockPosition = getHeapHeader().getFirstFreeBlock(bits);
      if (nextFreeDataBlockPosition != -1L) {
        contentValue++;
        index++;
        dataBlock = createDataBlock(bits, contentValue);
        assertSame("bad data block page", dataBlockPage,
            dataBlock.getDataBlockPage());
      }
    } while (nextFreeDataBlockPosition != -1L);
    final int numberOfBlockCreated = index + 1;
    assertEquals("number of block missmatch", numberOfBlockCreated,
        dataBlockPage.getNumberOfBlock());
    final int numberOfPageOfBlockPage = dataBlockPage.getNumberOfPage();
    position += numberOfPageOfBlockPage * PageConstant.PAGE_SIZE;

    contentValue++;
    for (int count = 0; count < numberOfBlockCreated; count++) {
      dataBlock = createDataBlock(bits, contentValue);
View Full Code Here


  public IDataBlock getDataBlock(final long dataBlockPosition)
      throws HeapException {
    final PageRecord pageRecord = (PageRecord) heapElementManager
        .readHeapFileDataRecord(dataBlockPosition
            & PageConstant.START_PAGE_POSITION_MASK);
    final DataBlockPage dataBlockPage = (DataBlockPage) pageRecord
        .getPageRecordable();
    final IDataBlock datablock = dataBlockPage
        .getDataBlock(dataBlockPosition);
    return datablock;
  }
View Full Code Here

    final byte bits = DataBlockPage.bitsForLength(data.length);
    final long freeDataBlockPosition = header
        .getFreeDataBlockPosition(bits);
    final IDataBlock dataBlock;
    if (freeDataBlockPosition == -1L) {
      final DataBlockPage dataBlockPage = new DataBlockPage(bits);
      final long pageNumber = header.getFileSizeAsNumberOfPage();
      final long previousRecordPositionInFile = header
          .getLastRecordPositionInFile();
      // the new page record for page recordable
      final IPageRecord pageRecord = new PageRecord(heapElementManager,
          previousRecordPositionInFile, dataBlockPage, pageNumber);
      header.setFileSizeAsNumberOfPage(pageNumber
          + pageRecord.getNumberOfPage());
      header.setLastRecordPositionInFile(pageNumber << PageConstant.PAGE_BITS);
      dataBlockPage.setPageRecord(pageRecord);
      heapElementManager.appendHeapFileRecord(pageRecord);
      dataBlockPage.setAllFree();
      header.incrementNumberOfFreeRecord(dataBlockPage.getNumberOfBlock());
      dataBlock = dataBlockPage.getDataBlock(0);
    } else {
      dataBlock = getDataBlock(freeDataBlockPosition);
    }
    final long nextFreeDataBlockPosition = dataBlock
        .getNextFreeDataBlockPositionOfFree();
View Full Code Here

TOP

Related Classes of net.sf.joafip.btreeplus.entity.DataBlockPage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.