comparison src/com/tmate/hgkit/ll/HgDataFile.java @ 51:9429c7bd1920 wrap-data-access

Try DataAccess to reach revision data instead of plain byte arrays
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Sun, 16 Jan 2011 01:20:26 +0100
parents 26e3eeaa3962
children
comparison
equal deleted inserted replaced
50:f1db8610da62 51:9429c7bd1920
4 package com.tmate.hgkit.ll; 4 package com.tmate.hgkit.ll;
5 5
6 import static com.tmate.hgkit.ll.HgRepository.TIP; 6 import static com.tmate.hgkit.ll.HgRepository.TIP;
7 7
8 import java.util.Arrays; 8 import java.util.Arrays;
9
10 import com.tmate.hgkit.fs.DataAccess;
9 11
10 /** 12 /**
11 * Extends Revlog/uses RevlogStream? 13 * Extends Revlog/uses RevlogStream?
12 * ? name:HgFileNode? 14 * ? name:HgFileNode?
13 * @author artem 15 * @author artem
50 } 52 }
51 final int[] commitRevisions = new int[end - start + 1]; 53 final int[] commitRevisions = new int[end - start + 1];
52 Revlog.Inspector insp = new Revlog.Inspector() { 54 Revlog.Inspector insp = new Revlog.Inspector() {
53 int count = 0; 55 int count = 0;
54 56
55 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) { 57 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess data) {
56 commitRevisions[count++] = linkRevision; 58 commitRevisions[count++] = linkRevision;
57 } 59 }
58 }; 60 };
59 content.iterate(start, end, false, insp); 61 content.iterate(start, end, false, insp);
60 getRepo().getChangelog().range(inspector, commitRevisions); 62 getRepo().getChangelog().range(inspector, commitRevisions);
85 class ParentCollector implements Revlog.Inspector { 87 class ParentCollector implements Revlog.Inspector {
86 public int p1 = -1; 88 public int p1 = -1;
87 public int p2 = -1; 89 public int p2 = -1;
88 public byte[] nodeid; 90 public byte[] nodeid;
89 91
90 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) { 92 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess data) {
91 p1 = parent1Revision; 93 p1 = parent1Revision;
92 p2 = parent2Revision; 94 p2 = parent2Revision;
93 this.nodeid = new byte[20]; 95 this.nodeid = new byte[20];
94 // nodeid arg now comes in 32 byte from (as in file format description), however upper 12 bytes are zeros. 96 // nodeid arg now comes in 32 byte from (as in file format description), however upper 12 bytes are zeros.
95 System.arraycopy(nodeid, nodeid.length > 20 ? nodeid.length - 20 : 0, this.nodeid, 0, 20); 97 System.arraycopy(nodeid, nodeid.length > 20 ? nodeid.length - 20 : 0, this.nodeid, 0, 20);