Mercurial > jhg
view src/com/tmate/hgkit/ll/Revlog.java @ 26:71a9ba42cee8
Memory-mapped files for bigger files. Defect reading number of bytes greater than size of the buffer fixed
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Sun, 09 Jan 2011 15:59:54 +0100 |
parents | d4fdd1845b3f |
children | 6cce719bbb62 |
line wrap: on
line source
/* * Copyright (c) 2010, 2011 Artem Tikhomirov */ package com.tmate.hgkit.ll; /** * * @author artem */ public abstract class Revlog { private final HgRepository hgRepo; protected final RevlogStream content; protected Revlog(HgRepository hgRepo, RevlogStream content) { if (hgRepo == null) { throw new NullPointerException(); } this.hgRepo = hgRepo; this.content = content; } public final HgRepository getRepo() { return hgRepo; } public int getRevisionCount() { return content.revisionCount(); } // FIXME byte[] data might be too expensive, for few usecases it may be better to have intermediate Access object (when we don't need full data // instantly - e.g. calculate hash, or comparing two revisions public interface Inspector { // XXX boolean retVal to indicate whether to continue? // TODO specify nodeid and data length, and reuse policy (i.e. if revlog stream doesn't reuse nodeid[] for each call) void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[/*20*/] nodeid, byte[] data); } }