/** Returns the previous block. */ long getPrev() { paranoiaMagicOk(); return block.readLong( O_PREV ); }
/** * Constructs a new PageHeader of the indicated type. Used for newly * created pages. */ PageHeader(BlockIo block, short type) { initialize(block); setType(type); }
/** * Constructs a PageHeader object from a block * * @param block The block that contains the file header * @throws IOException if the block is too short to keep the file * header. */ protected PageHeader(BlockIo block) { initialize(block); if (!magicOk()) throw new Error("CRITICAL: page header magic for block " + block.getBlockId() + " not OK " + getMagic()); }
PageHeader pageHdr = PageHeader.getView(buf); long prev = pageHdr.getPrev(); long next = pageHdr.getNext(); pageHdr.setType(Magic.FREE_PAGE); pageHdr.setNext(header.getFirstOf(Magic.FREE_PAGE)); pageHdr.setPrev(0); pageHdr = PageHeader.getView(buf); pageHdr.setNext(next); file.release(prev, true); pageHdr = PageHeader.getView(buf); pageHdr.setPrev(prev); file.release(next, true);
PageHeader pageHdr = isNew ? new PageHeader(buf, type) : PageHeader.getView(buf); long oldLast = header.getLastOf(type); buf.getData(), 0, file.BLOCK_SIZE); pageHdr.setType(type); pageHdr.setPrev(oldLast); pageHdr.setNext(0); pageHdr = PageHeader.getView(buf); pageHdr.setNext(retval); file.release(oldLast, true);
/** * Returns true if the magic corresponds with the fileHeader magic. */ private boolean magicOk() { int magic = getMagic(); return magic >= Magic.BLOCK && magic <= ( Magic.BLOCK + Magic.FREEPHYSIDS_PAGE ); }
/** * Factory method to create or return a page header for the * indicated block. */ static PageHeader getView(BlockIo block) { BlockView view = block.getView(); if (view != null && view instanceof PageHeader) return (PageHeader) view; else return new PageHeader(block); }
/** * Constructs a new PageHeader of the indicated type. Used for newly * created pages. */ PageHeader( BlockIo block, short type ) { this.block = block; block.setView( this ); setType( type ); }
PageHeader pageHdr = PageHeader.getView( buf ); long prev = pageHdr.getPrev(); long next = pageHdr.getNext(); pageHdr.setType( Magic.FREE_PAGE ); pageHdr.setNext( header.getFirstOf( Magic.FREE_PAGE ) ); pageHdr.setPrev( 0 ); pageHdr = PageHeader.getView( buf ); pageHdr.setNext( next ); recordFile.release( prev, true ); pageHdr = PageHeader.getView( buf ); pageHdr.setPrev( prev ); recordFile.release( next, true );
/** * Returns true if the magic corresponds with the fileHeader magic. */ private boolean magicOk() { int magic = getMagic(); return magic >= Magic.BLOCK && magic <= ( Magic.BLOCK + Magic.FREEPHYSIDS_PAGE ); }
/** * Factory method to create or return a page header for the indicated block. */ static PageHeader getView( BlockIo block ) { BlockView view = block.getView(); if ( view != null && view instanceof PageHeader ) { return ( PageHeader ) view; } else { return new PageHeader( block ); } }
/** * Constructs a new PageHeader of the indicated type. Used for newly * created pages. */ PageHeader( BlockIo blockIo, short type ) { this.blockIo = blockIo; blockIo.setView( this ); setType( type ); }
PageHeader pageHdr = PageHeader.getView( buf ); long prev = pageHdr.getPrev(); long next = pageHdr.getNext(); pageHdr.setType( Magic.FREE_PAGE ); pageHdr.setNext( header.getFirstOf( Magic.FREE_PAGE ) ); pageHdr.setPrev( 0 ); pageHdr = PageHeader.getView( buf ); pageHdr.setNext( next ); file.release( prev, true ); pageHdr = PageHeader.getView( buf ); pageHdr.setPrev( prev ); file.release( next, true );