comparison src/com/tmate/hgkit/fs/DataAccessProvider.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 b0a15cefdfd6
children
comparison
equal deleted inserted replaced
50:f1db8610da62 51:9429c7bd1920
70 public boolean isEmpty() { 70 public boolean isEmpty() {
71 return position + (buffer == null ? 0 : buffer.position()) >= size; 71 return position + (buffer == null ? 0 : buffer.position()) >= size;
72 } 72 }
73 73
74 @Override 74 @Override
75 public long length() {
76 return size;
77 }
78
79 @Override
80 public void reset() throws IOException {
81 seek(0);
82 }
83
84 @Override
75 public void seek(long offset) { 85 public void seek(long offset) {
76 assert offset >= 0; 86 assert offset >= 0;
77 // offset may not necessarily be further than current position in the file (e.g. rewind) 87 // offset may not necessarily be further than current position in the file (e.g. rewind)
78 if (buffer != null && /*offset is within buffer*/ offset >= position && (offset - position) < buffer.limit()) { 88 if (buffer != null && /*offset is within buffer*/ offset >= position && (offset - position) < buffer.limit()) {
79 buffer.position((int) (offset - position)); 89 buffer.position((int) (offset - position));
172 public boolean isEmpty() { 182 public boolean isEmpty() {
173 return bufferStartInFile + buffer.position() >= size; 183 return bufferStartInFile + buffer.position() >= size;
174 } 184 }
175 185
176 @Override 186 @Override
187 public long length() {
188 return size;
189 }
190
191 @Override
192 public void reset() throws IOException {
193 seek(0);
194 }
195
196 @Override
177 public void seek(long offset) throws IOException { 197 public void seek(long offset) throws IOException {
178 if (offset > size) { 198 if (offset > size) {
179 throw new IllegalArgumentException(); 199 throw new IllegalArgumentException();
180 } 200 }
181 if (offset < bufferStartInFile + buffer.limit() && offset >= bufferStartInFile) { 201 if (offset < bufferStartInFile + buffer.limit() && offset >= bufferStartInFile) {