Examples of PageAddress


Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

   * @throws IOException
   */
  public void releaseSequenceOfPages(final int pagenumber) throws IOException {
    int pagenumber_tmp = pagenumber;
    while (pagenumber_tmp > 0) {
      final byte[] page = this.bufferManager.getPage(this.pagesize, new PageAddress(pagenumber_tmp, this.filename));
      this.releasePage(pagenumber_tmp);
      pagenumber_tmp = (((0xFF & page[0]) << 8 | (0xFF & page[1])) << 8 | (0xFF & page[2])) << 8 | (0xFF & page[3]);
    }
  }
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

  /**
   * This method sets some internal states after loading...
   */
  public void initAfterLoading(){
    try {
      final byte[] page0 = this.bufferManager.getPage(this.pagesize, new PageAddress(0, this.filename));
      this.maxNumberPages = (((0xFF & page0[6]) << 8 | (0xFF & page0[7])) << 8 | (0xFF & page0[8])) << 8 | (0xFF & page0[9]);
      this.freePageBeforeEndOfFile = (page0[10]==1);
    } catch (final IOException e) {
      System.err.println(e);
      e.printStackTrace();
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

   * @throws IOException in case of any i/o failure!
   */
  private final static void storeIntInPage(final String fileName, final long posInFile, final long value) throws IOException{
    final int defaultPageSize = PageManager.getDefaultPageSize();
    final int pageNumber = (int) (posInFile / defaultPageSize);
    PageAddress pageAddress = new PageAddress(pageNumber, fileName);
    byte[] page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
    int posInPage = (int) (posInFile % defaultPageSize);
    long toBeStored = value;
    if(posInPage+3 >= defaultPageSize){
      // the integer must be stored over two pages!
      for(int i=0; i<4; i++){
        if(posInPage>=defaultPageSize){
          // next page is affected!
          BufferManager.getBufferManager().modifyPage(defaultPageSize, pageAddress, page);
          pageAddress = new PageAddress(pageAddress.pagenumber+1, pageAddress.filename);
          page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
          posInPage %= defaultPageSize;
        }
        page[posInPage] = (byte)((toBeStored % 256)-128);
        toBeStored/=256;
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

   * @throws IOException in case of any i/o failures...
   */
  private final static long getIntFromPage(final String fileName, final long posInFile) throws IOException{
    final int defaultPageSize = PageManager.getDefaultPageSize();
    final int pageNumber = (int) (posInFile / defaultPageSize);
    PageAddress pageAddress = new PageAddress(pageNumber, fileName);
    byte[] page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
    int posInPage = (int) (posInFile % defaultPageSize);

    if(posInPage+3>=defaultPageSize){
      // the integer is stored over two pages!
      long result = 0;
      long factor = 1;
      for(int i=0; i<4; i++){
        if(posInPage>=defaultPageSize){
          // next page is affected!
          pageAddress = new PageAddress(pageAddress.pagenumber+1, pageAddress.filename);
          page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
          posInPage %= defaultPageSize;
        }
        result += (page[posInPage] + 128) * factor;
        factor *= 256;
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

   * @throws IOException in case of any i/o failure!
   */
  private final static void storeLongInPage(final String fileName, final long posInFile, final long value) throws IOException{
    final int defaultPageSize = PageManager.getDefaultPageSize();
    final int pageNumber = (int) (posInFile / defaultPageSize);
    PageAddress pageAddress = new PageAddress(pageNumber, fileName);
    byte[] page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
    int posInPage = (int) (posInFile % defaultPageSize);
    long toBeStored = value;
    if(posInPage+7 >= defaultPageSize){
      // the long must be stored over two pages!
      for(int i=0; i<8; i++){
        if(posInPage>=defaultPageSize){
          // next page is affected!
          BufferManager.getBufferManager().modifyPage(defaultPageSize, pageAddress, page);
          pageAddress = new PageAddress(pageAddress.pagenumber+1, pageAddress.filename);
          page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
          posInPage %= defaultPageSize;
        }
        page[posInPage] = (byte)((toBeStored % 256)-128);
        toBeStored/=256;
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

   * @throws IOException in case of any i/o failures...
   */
  private final static long getLongFromPage(final String fileName, final long posInFile) throws IOException{
    final int defaultPageSize = PageManager.getDefaultPageSize();
    final int pageNumber = (int) (posInFile / defaultPageSize);
    PageAddress pageAddress = new PageAddress(pageNumber, fileName);
    byte[] page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
    int posInPage = (int) (posInFile % defaultPageSize);

    if(posInPage+7>=defaultPageSize){
      // the long is stored over two pages!
      long result = 0;
      long factor = 1;
      for(int i=0; i<8; i++){
        if(posInPage>=defaultPageSize){
          // next page is affected!
          pageAddress = new PageAddress(pageAddress.pagenumber+1, pageAddress.filename);
          page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
          posInPage %= defaultPageSize;
        }
        result += (page[posInPage] + 128L) * factor;
        factor *= 256;
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

    // store bytes of string...
    final long startString = posInFile + 4;
    final int defaultPageSize = PageManager.getDefaultPageSize();
    final int pageNumber = (int) (startString / defaultPageSize);
    PageAddress pageAddress = new PageAddress(pageNumber, fileName);
    byte[] page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
    int posInPage = (int) (startString % defaultPageSize);

    // Is the string stored over several pages?
    if(posInPage+length>=defaultPageSize){
      for(final byte b: bytesOfValue){
        page[posInPage] = b;
        posInPage++;
        if(posInPage>=defaultPageSize){
          // next page is affected!
          BufferManager.getBufferManager().modifyPage(defaultPageSize, pageAddress, page);
          pageAddress = new PageAddress(pageAddress.pagenumber+1, pageAddress.filename);
          page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
          posInPage %= defaultPageSize;
        }
      }
    } else {
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

    final int length = (int) StringArray.getIntFromPage(fileName, posInFile);
    // get the string as byte array
    final long startOfString = posInFile + 4;
    final int defaultPageSize = PageManager.getDefaultPageSize();
    final int pageNumber = (int) (startOfString / defaultPageSize);
    PageAddress pageAddress = new PageAddress(pageNumber, fileName);
    byte[] page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
    int posInPage = (int) (startOfString % defaultPageSize);

    final byte[] result = new byte[length];

    if(posInPage+length>=defaultPageSize){
      // the string is stored over two pages!
      for(int i=0; i<length; i++){
        if(posInPage>=defaultPageSize){
          // next page is affected!
          pageAddress = new PageAddress(pageAddress.pagenumber+1, pageAddress.filename);
          page = BufferManager.getBufferManager().getPage(defaultPageSize, pageAddress);
          posInPage %= defaultPageSize;
        }
        result[i] = page[posInPage];
        posInPage++;
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

          e2.printStackTrace();
        }
        if (this.getPointerBound(index) != this.getPointerBound(i)) {
          try {
            System.arraycopy(page, 0, page, 1, this.pageSize - 1);
            this.bufferManager.modifyPage(this.pageSize, new PageAddress(this.getPointerPage(i), this.path2), page);
          } catch (final IOException e1) {
            e1.printStackTrace();
          }
          i -= this.pageSize - 1;
        } else {
          try {
            System.arraycopy(page, index, page, index + 1, this.pageSize - index);
            this.bufferManager.modifyPage(this.pageSize, new PageAddress(this.getPointerPage(i), this.path2), page);
          } catch (final IOException e1) {
            e1.printStackTrace();
          }
          i -= this.pageSize - index;
        }
View Full Code Here

Examples of lupos.datastructures.buffermanager.BufferManager.PageAddress

  protected void writeData(final byte[] serializedObject, final int leftPage, final int rightPage, final int leftBound, final int rightBound) {
    byte[] page = null;
    int offset = 0;
    try {
      for (int i = leftPage; i <= rightPage; i++) {
        page = this.bufferManager.getPage(this.pageSize, new PageAddress(i, this.path1));
        if (leftPage == rightPage) {
          System.arraycopy(serializedObject, 0, page, leftBound, serializedObject.length);
          this.bufferManager.modifyPage(this.pageSize, new PageAddress(i, this.path1), page);
          offset += serializedObject.length;
        } else if (i == leftPage) {
          System.arraycopy(serializedObject, 0, page, leftBound, this.pageSize - leftBound);
          this.bufferManager.modifyPage(this.pageSize, new PageAddress(i, this.path1), page);
          offset += this.pageSize - leftBound;
        } else if (i != leftPage && i != rightPage) {
          System.arraycopy(serializedObject, offset, page, 0, this.pageSize);
          this.bufferManager.modifyPage(this.pageSize, new PageAddress(i, this.path1), page);
          offset += this.pageSize;
        } else if (i == rightPage) {
          System.arraycopy(serializedObject, offset, page, 0, rightBound);
          this.bufferManager.modifyPage(this.pageSize, new PageAddress(i, this.path1), page);
          offset += rightBound;
        }
      }
      this.bufferManager.writeAllModifiedPages();
    } catch (final IOException e1) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.