aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/btree/HeapFile.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/btree/HeapFile.java')
-rw-r--r--src/main/java/io/trygvis/btree/HeapFile.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/io/trygvis/btree/HeapFile.java b/src/main/java/io/trygvis/btree/HeapFile.java
index 7a960c8..6bd0451 100644
--- a/src/main/java/io/trygvis/btree/HeapFile.java
+++ b/src/main/java/io/trygvis/btree/HeapFile.java
@@ -37,15 +37,18 @@ public class HeapFile implements Closeable {
return HeapPage.heapPageFromBytes(page, buffer);
}
- public void writePage(HeapPage page) throws IOException {
+ public long writePage(HeapPage page) throws IOException {
long position;
if (page.pageNumber == -1) {
- position = file.length();
+ position = channel.size();
} else {
position = page.pageNumber * PAGE_SIZE;
}
+ page.bytes.rewind();
channel.write(page.bytes, position);
channel.force(true);
+
+ return position / PAGE_SIZE;
}
public long pageCount() throws IOException {