Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgManifest.java @ 431:12f668401613
FIXMEs: awkward API refactored, what need to be internal got hidden; public aspects got captured in slim interfaces
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Thu, 29 Mar 2012 20:54:04 +0200 |
| parents | 063b0663495a |
| children | 909306e412e2 |
comparison
equal
deleted
inserted
replaced
| 430:d280759c2a3f | 431:12f668401613 |
|---|---|
| 31 import org.tmatesoft.hg.internal.DigestHelper; | 31 import org.tmatesoft.hg.internal.DigestHelper; |
| 32 import org.tmatesoft.hg.internal.EncodingHelper; | 32 import org.tmatesoft.hg.internal.EncodingHelper; |
| 33 import org.tmatesoft.hg.internal.IntMap; | 33 import org.tmatesoft.hg.internal.IntMap; |
| 34 import org.tmatesoft.hg.internal.IterateControlMediator; | 34 import org.tmatesoft.hg.internal.IterateControlMediator; |
| 35 import org.tmatesoft.hg.internal.Lifecycle; | 35 import org.tmatesoft.hg.internal.Lifecycle; |
| 36 import org.tmatesoft.hg.internal.Pool2; | 36 import org.tmatesoft.hg.internal.IdentityPool; |
| 37 import org.tmatesoft.hg.internal.RevlogStream; | 37 import org.tmatesoft.hg.internal.RevlogStream; |
| 38 import org.tmatesoft.hg.util.CancelSupport; | 38 import org.tmatesoft.hg.util.CancelSupport; |
| 39 import org.tmatesoft.hg.util.Path; | 39 import org.tmatesoft.hg.util.Path; |
| 40 import org.tmatesoft.hg.util.ProgressSupport; | 40 import org.tmatesoft.hg.util.ProgressSupport; |
| 41 | 41 |
| 434 } | 434 } |
| 435 } | 435 } |
| 436 | 436 |
| 437 private static class ManifestParser implements RevlogStream.Inspector, Lifecycle { | 437 private static class ManifestParser implements RevlogStream.Inspector, Lifecycle { |
| 438 private final Inspector inspector; | 438 private final Inspector inspector; |
| 439 private Pool2<Nodeid> nodeidPool, thisRevPool; | 439 private IdentityPool<Nodeid> nodeidPool, thisRevPool; |
| 440 private final Pool2<PathProxy> fnamePool; | 440 private final IdentityPool<PathProxy> fnamePool; |
| 441 private byte[] nodeidLookupBuffer = new byte[20]; // get reassigned each time new Nodeid is added to pool | 441 private byte[] nodeidLookupBuffer = new byte[20]; // get reassigned each time new Nodeid is added to pool |
| 442 private final ProgressSupport progressHelper; | 442 private final ProgressSupport progressHelper; |
| 443 private IterateControlMediator iterateControl; | 443 private IterateControlMediator iterateControl; |
| 444 private final EncodingHelper encHelper; | 444 private final EncodingHelper encHelper; |
| 445 | 445 |
| 446 public ManifestParser(Inspector delegate, EncodingHelper eh) { | 446 public ManifestParser(Inspector delegate, EncodingHelper eh) { |
| 447 assert delegate != null; | 447 assert delegate != null; |
| 448 inspector = delegate; | 448 inspector = delegate; |
| 449 encHelper = eh; | 449 encHelper = eh; |
| 450 nodeidPool = new Pool2<Nodeid>(); | 450 nodeidPool = new IdentityPool<Nodeid>(); |
| 451 fnamePool = new Pool2<PathProxy>(); | 451 fnamePool = new IdentityPool<PathProxy>(); |
| 452 thisRevPool = new Pool2<Nodeid>(); | 452 thisRevPool = new IdentityPool<Nodeid>(); |
| 453 progressHelper = ProgressSupport.Factory.get(delegate); | 453 progressHelper = ProgressSupport.Factory.get(delegate); |
| 454 } | 454 } |
| 455 | 455 |
| 456 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess da) { | 456 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess da) { |
| 457 try { | 457 try { |
| 516 // | 516 // |
| 517 // keep only actual file revisions, found at this version | 517 // keep only actual file revisions, found at this version |
| 518 // (next manifest is likely to refer to most of them, although in specific cases | 518 // (next manifest is likely to refer to most of them, although in specific cases |
| 519 // like commit in another branch a lot may be useless) | 519 // like commit in another branch a lot may be useless) |
| 520 nodeidPool.clear(); | 520 nodeidPool.clear(); |
| 521 Pool2<Nodeid> t = nodeidPool; | 521 IdentityPool<Nodeid> t = nodeidPool; |
| 522 nodeidPool = thisRevPool; | 522 nodeidPool = thisRevPool; |
| 523 thisRevPool = t; | 523 thisRevPool = t; |
| 524 iterateControl.checkCancelled(); | 524 iterateControl.checkCancelled(); |
| 525 progressHelper.worked(1); | 525 progressHelper.worked(1); |
| 526 } catch (IOException ex) { | 526 } catch (IOException ex) { |
