public void seek(long offset) { //TODO: optimize if the buffer contains data to read numbersStart = 0; numbersLength = 0; bytesStart = 0; bytesLength = 0; prefetchedBytesCount = 0; input.seek(inputStartPosition + offset); }
private FSFile openAndSeekRevision(long revision, long offset) throws SVNException { FSFile file = getRevisionFile(revision); file.seek(offset); return file; }
private FSFile openAndSeekTransaction(FSRepresentation rep) { FSFile file = getTransactionRevisionPrototypeFile(rep.getTxnId()); file.seek(rep.getOffset()); return file; }
private FSFile openAndSeekTransaction(FSRepresentation rep) { FSFile file = getTransactionRevisionPrototypeFile(rep.getTxnId()); file.seek(rep.getOffset()); return file; }
private FSFile openAndSeekTransaction(FSRepresentation rep) { FSFile file = getTransactionRevisionPrototypeFile(rep.getTxnId()); file.seek(rep.getOffset()); return file; }
private FSFile openAndSeekRevision(long revision, long offset) throws SVNException { ensureRevisionsExists(revision); FSFile file = getPackOrRevisionFSFile(revision); if (isPackedRevision(revision)) { long revOffset = getPackedOffset(revision); offset += revOffset; } file.seek(offset); return file; }
private FSFile openAndSeekRevision(long revision, long offset) throws SVNException { ensureRevisionsExists(revision); FSFile file = getPackOrRevisionFSFile(revision); if (isPackedRevision(revision)) { long revOffset = getPackedOffset(revision); offset += revOffset; } file.seek(offset); return file; }
public void ensureFooterLoaded() throws SVNException { try { if (myL2POffset == -1) { long fileSize = size(); seek(fileSize - 1); int footerSize = read() & 0xff; long footerOffset = fileSize - 1 - footerSize; if (footerOffset < 0 || footerOffset >= fileSize) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid footer size {0}", String.valueOf(footerSize)); SVNErrorManager.error(errorMessage, SVNLogType.FSFS); } seek(footerOffset); byte[] footerBytes = new byte[footerSize]; int bytesRead = read(footerBytes, 0, footerBytes.length); assert bytesRead == footerBytes.length; parseFooter(new String(footerBytes)); myFooterOffset = footerOffset; }//otherwise do nothing, it is already loaded } catch (IOException e) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, e); SVNErrorManager.error(errorMessage, SVNLogType.FSFS); } }
private FSPackedNumbersStream packedStreamOpen(String prefix) throws SVNException { myFile.seek(myFile.getL2POffset()); final int length = prefix.length(); final byte[] headerBytes = new byte[length]; try { final int bytesRead = myFile.read(headerBytes, 0, length); if (bytesRead != length) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.FS_INDEX_CORRUPTION); SVNErrorManager.error(errorMessage, SVNLogType.FSFS); } } catch (IOException e) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, e); SVNErrorManager.error(errorMessage, SVNLogType.FSFS); } if (!Arrays.equals(headerBytes, prefix.getBytes())) { SVNErrorMessage errorMessage = SVNErrorMessage.create(SVNErrorCode.FS_INDEX_CORRUPTION, "Index stream header prefix mismatch.\n" + " expected: {0}" + " found: {1}", new Object[]{prefix, new String(headerBytes)}); SVNErrorManager.error(errorMessage, SVNLogType.FSFS); } return new FSPackedNumbersStream(myFile); }
public Map getChangedPaths() throws SVNException { FSFile file = getOwner().getPackOrRevisionFSFile(getRevision()); try { loadOffsets(file, FSID.ITEM_INDEX_CHANGES); file.seek(myChangesOffset); return fetchAllChanges(file, true); } finally { file.close(); } }
private FSFile openAndSeekTransaction(FSRepresentation rep) throws SVNException { FSFile file = getTransactionRevisionPrototypeFile(rep.getTxnId()); long itemIndex = rep.getItemIndex(); long offset; if (isUseLogAddressing()) { offset = lookupOffsetInProtoIndex(file, rep.getTxnId(), itemIndex); } else { offset = itemIndex; } file.seek(offset); return file; }
public Map getChangedPaths() throws SVNException { FSFile file = getOwner().getPackOrRevisionFSFile(getRevision()); try { loadOffsets(file); file.seek(myChangesOffset); return fetchAllChanges(file, true); } finally { file.close(); } }
public Map getChangedPaths() throws SVNException { FSFile file = getOwner().getRevisionFile(getRevision()); loadOffsets(file); try { file.seek(myChangesOffset); return fetchAllChanges(file, true); } finally { file.close(); } }
public Map getChangedPaths() throws SVNException { FSFile file = getOwner().getPackOrRevisionFSFile(getRevision()); try { loadOffsets(file); file.seek(myChangesOffset); return fetchAllChanges(file, true); } finally { file.close(); } }
private FSFile openAndSeekRevision(long revision, long itemIndex) throws SVNException { ensureRevisionsExists(revision); FSFile file = getPackOrRevisionFSFile(revision); long offset; if (isUseLogAddressing()) { offset = lookupOffsetInIndex(file, revision, itemIndex); } else { if (isPackedRevision(revision)) { long revOffset = getPackedOffset(revision); itemIndex += revOffset; } offset = itemIndex; } file.seek(offset); return file; }
public FSRevisionNode getRootRevisionNode() throws SVNException { if (myRootRevisionNode == null) { FSFile file = getOwner().getRevisionFile(getRevision()); try { loadOffsets(file); file.seek(myRootOffset); Map headers = file.readHeader(); myRootRevisionNode = FSRevisionNode.fromMap(headers); } finally { file.close(); } } return myRootRevisionNode; }
public FSRevisionNode getRootRevisionNode() throws SVNException { if (myRootRevisionNode == null) { FSFile file = getOwner().getPackOrRevisionFSFile(getRevision()); try { loadOffsets(file); file.seek(myRootOffset); Map headers = file.readHeader(); myRootRevisionNode = FSRevisionNode.fromMap(headers); } finally { file.close(); } } return myRootRevisionNode; }
public FSRevisionNode getRootRevisionNode() throws SVNException { if (myRootRevisionNode == null) { FSFile file = getOwner().getPackOrRevisionFSFile(getRevision()); try { loadOffsets(file); file.seek(myRootOffset); Map headers = file.readHeader(); myRootRevisionNode = FSRevisionNode.fromMap(headers); } finally { file.close(); } } return myRootRevisionNode; }
public FSRevisionNode getRevisionNode(FSID id) throws SVNException { FSFile revisionFile = null; if (id.isTxn()) { File file = new File(getTransactionDir(id.getTxnID()), PATH_PREFIX_NODE + id.getNodeID() + "." + id.getCopyID()); revisionFile = new FSFile(file); } else { revisionFile = getRevisionFile(id.getRevision()); revisionFile.seek(id.getOffset()); } Map headers = null; try { headers = revisionFile.readHeader(); } finally{ revisionFile.close(); } return FSRevisionNode.fromMap(headers); }
public FSRevisionNode getRootRevisionNode() throws SVNException { if (myRootRevisionNode == null) { if (false && isUseLogAddressing()) { FSRevisionNode rootRevisionNode = new FSRevisionNode(); rootRevisionNode.setId(FSID.createRevId(null, null, myRevision, FSID.ITEM_INDEX_ROOT_NODE)); rootRevisionNode.setType(SVNNodeKind.DIR); rootRevisionNode.setPredecessorId(null); rootRevisionNode.setCreatedPath("/"); myRootRevisionNode = rootRevisionNode; } else { FSFile file = getOwner().getPackOrRevisionFSFile(getRevision()); try { loadOffsets(file, FSID.ITEM_INDEX_ROOT_NODE); file.seek(myRootOffset); Map headers = file.readHeader(); myRootRevisionNode = FSRevisionNode.fromMap(headers); } finally { file.close(); } } } return myRootRevisionNode; }