1 34 package smallsql.database; 35 36 import java.io.*; 37 import java.sql.SQLException ; 38 39 42 class StorePage { 43 byte[] page; int pageSize; 45 RandomAccessFile raFile; 46 long fileOffset; 48 StorePage(byte[] page, int pageSize, RandomAccessFile raFile, long fileOffset){ 49 this.page = page; 50 this.pageSize = pageSize; 51 this.raFile = raFile; 52 this.fileOffset = fileOffset; 53 } 54 55 56 final void setPageData(byte[] data, int size){ 57 page = data; 58 pageSize = size; 59 } 60 61 62 long commit() throws SQLException { 63 try{ 64 if(raFile != null){ 65 if(fileOffset < 0){ 67 fileOffset = raFile.length(); 68 } 69 raFile.seek(fileOffset); 70 raFile.write(page, 0, pageSize); 71 } 73 return fileOffset; 74 }catch(Exception e){ 75 throw Utils.createSQLException(e); 76 } 77 } 78 79 80 final void rollback(){ 81 raFile = null; 82 } 83 84 void freeLock(){} 85 } 86 | Popular Tags |