Mercurial > hg4j
comparison src/org/tmatesoft/hg/internal/DataAccessProvider.java @ 157:d5268ca7715b
Merged branch wrap-data-access into default for resource-friendly data access. Updated API to promote that friendliness to clients (channels, not byte[]). More exceptions
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Wed, 09 Mar 2011 05:22:17 +0100 |
| parents | src/com/tmate/hgkit/fs/DataAccessProvider.java@9429c7bd1920 src/com/tmate/hgkit/fs/DataAccessProvider.java@a3a2e5deb320 |
| children | b413b16d10a5 |
comparison
equal
deleted
inserted
replaced
| 156:643ddec3be36 | 157:d5268ca7715b |
|---|---|
| 84 public boolean isEmpty() { | 84 public boolean isEmpty() { |
| 85 return position + (buffer == null ? 0 : buffer.position()) >= size; | 85 return position + (buffer == null ? 0 : buffer.position()) >= size; |
| 86 } | 86 } |
| 87 | 87 |
| 88 @Override | 88 @Override |
| 89 public long length() { | |
| 90 return size; | |
| 91 } | |
| 92 | |
| 93 @Override | |
| 94 public DataAccess reset() throws IOException { | |
| 95 seek(0); | |
| 96 return this; | |
| 97 } | |
| 98 | |
| 99 @Override | |
| 89 public void seek(long offset) { | 100 public void seek(long offset) { |
| 90 assert offset >= 0; | 101 assert offset >= 0; |
| 91 // offset may not necessarily be further than current position in the file (e.g. rewind) | 102 // offset may not necessarily be further than current position in the file (e.g. rewind) |
| 92 if (buffer != null && /*offset is within buffer*/ offset >= position && (offset - position) < buffer.limit()) { | 103 if (buffer != null && /*offset is within buffer*/ offset >= position && (offset - position) < buffer.limit()) { |
| 93 buffer.position((int) (offset - position)); | 104 buffer.position((int) (offset - position)); |
| 186 public boolean isEmpty() { | 197 public boolean isEmpty() { |
| 187 return bufferStartInFile + buffer.position() >= size; | 198 return bufferStartInFile + buffer.position() >= size; |
| 188 } | 199 } |
| 189 | 200 |
| 190 @Override | 201 @Override |
| 202 public long length() { | |
| 203 return size; | |
| 204 } | |
| 205 | |
| 206 @Override | |
| 207 public DataAccess reset() throws IOException { | |
| 208 seek(0); | |
| 209 return this; | |
| 210 } | |
| 211 | |
| 212 @Override | |
| 191 public void seek(long offset) throws IOException { | 213 public void seek(long offset) throws IOException { |
| 192 if (offset > size) { | 214 if (offset > size) { |
| 193 throw new IllegalArgumentException(); | 215 throw new IllegalArgumentException(); |
| 194 } | 216 } |
| 195 if (offset < bufferStartInFile + buffer.limit() && offset >= bufferStartInFile) { | 217 if (offset < bufferStartInFile + buffer.limit() && offset >= bufferStartInFile) { |
